Làm thế nào để chuyển đổi bảng tần số thành một vectơ giá trị?


13

Sử dụng R hoặc Excel, cách dễ nhất để chuyển đổi bảng tần số thành một vectơ giá trị là gì?

Ví dụ: Làm thế nào bạn sẽ chuyển đổi bảng tần số sau đây

Value   Frequency
  1.      2
  2.      1
  3.      4
  4.      2
  5.      1

vào vectơ nào sau đây?

1, 1, 2, 3, 3, 3, 3, 4, 4, 5

Câu trả lời:


21

Trong R, bạn có thể làm điều đó bằng replệnh:

tab <- data.frame(value=c(1, 2, 3, 4, 5), freq=c(2, 1, 4, 2, 1))
vec <- rep(tab$value, tab$freq)

Điều này cho kết quả như sau:

> tab
  value freq
1     1    2
2     2    1
3     3    4
4     4    2
5     5    1

> vec
 [1] 1 1 2 3 3 3 3 4 4 5

Để biết chi tiết, xem tệp trợ giúp cho replệnh bằng cách nhập ?rep.


2
Hoặc, được đưa ra một bảng tần số đơn giản để vec <- sample(1:5, 20, TRUE)tạo bởi table(): rep(names(table(vec)), table(vec)). Kết quả sau đó cần phải được chuyển đổi as.numeric()nếu các danh mục là số thực tế.
caracal

1

Rõ ràng trong R nó đơn giản hơn.

Trong Excel tôi sẽ sử dụng cột trợ giúp (nếu giá trị bằng A1):

  value freq help
1     1    2  =REPT(A2 & ", ",B2)
2     2    1  =C1 & REPT(A3 & ", ",B3)
3     3    4  (drag or copy from upper cell)
4     4    2  (drag or copy from upper cell)
5     5    1  (drag or copy from upper cell)
              =LEFT(C6, LEN(C6)-1)

Trong C7 bạn có kết quả của bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.