我需要创建一个数据框包含先前数据框中每个分类变量的频率。幸运的是,这些变量都结构化为数字形式,从1到5,而非文本。
因此,我可以创建一个新的数据框,第一列包含数字1到5,每个随后的列计算原始数据框中每个变量的该数字作为响应的频率。
例如,我们有一个原始数据框定义为:
因此,我可以创建一个新的数据框,第一列包含数字1到5,每个随后的列计算原始数据框中每个变量的该数字作为响应的频率。
例如,我们有一个原始数据框定义为:
df1 <- data.frame(
Z = c(4, 1, 2, 1, 5, 4, 2, 5, 1, 5),
Y = c(5, 1, 5, 5, 2, 1, 4, 1, 3, 3),
X = c(4, 2, 2, 1, 5, 1, 5, 1, 3, 2),
W = c(2, 1, 4, 2, 3, 2, 4, 2, 1, 2),
V = c(5, 1, 3, 3, 3, 3, 2, 4, 4, 1))
我需要一个包含以下表格的第二个数据框:
fq Z Y X W V
1 3 3 3 2 2
2 4 2 6 10 2
3 0 6 3 3 12
4 8 4 4 8 8
5 15 15 10 0 5
我看到一些使用plyr如何做这样事情的答案,但它们不是系统化的。有人可以帮我吗?
df1
堆叠后,使用table()
函数生成频率表,再乘以1到5的数字向量,最后将结果转换为数据框。 - Onyambu