我正在尝试计算 data.frame 中多列的频率。
我table
在每一列上使用了该函数并通过 cbind 将它们全部绑定,然后将使用聚合函数通过我的标识符计算平均值。例子:
df1
V1 V2 V3
George Mary Mary
George Mary Mary
George Mary George
Mary Mary George
Mary George George
Mary
Frequency<- as.data.frame(cbind(table(df1$V1), table(df1$V2), table(df1$V3)))
row.names V1
George 3
Mary 3
1
George 1
Mary 4
1
George 3
Mary 2
我得到的结果(视觉上)是一个 2 列数据框,但是当我检查 的维度时Frequency
,我得到的结果暗示仅存在第二列。
当我尝试重命名列并运行聚合函数时,这给我带来了麻烦,重命名时出现错误:
colnames(Frequency) <- c("Name", "Frequency")
Error in names(Frequency) <- c("Name", "Frequency") :
'names' attribute [2] must be the same length as the vector [1]
最终目的是运行聚合命令并按名称获取平均值:
Name.Mean<- aggregate(Frequency$Frequency, list(Frequency.Name), mean)
期望的输出:
Name Mean
George Value
Mary Value