Câu trả lời:
Trong R, bạn có thể làm điều đó bằng rep
lệ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 rep
lệnh bằng cách nhập ?rep
.
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
vec <- sample(1:5, 20, TRUE)
tạo bởitable()
:rep(names(table(vec)), table(vec))
. Kết quả sau đó cần phải được chuyển đổias.numeric()
nếu các danh mục là số thực tế.