如何将频率表转换为值向量?


13

使用R或Excel,将频率表转换为值向量的最简单方法是什么?

例如,您如何转换以下频率表

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

进入以下向量?

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

Answers:


21

在R中,您可以使用以下rep命令执行此操作:

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

得到以下结果:

> 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

有关详细信息,请rep通过键入来查看命令的帮助文件?rep


2
或者,给出一个vec <- sample(1:5, 20, TRUE)由创建的简单频率表table()rep(names(table(vec)), table(vec))as.numeric()如果类别是实际数字,则需要转换结果。
caracal

1

显然,在R中它更简单。

在Excel中,我将使用帮助器列(如果在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)

在C7中,您有自己的结果

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.