我有以下数据框(这是一个示例,数据框可以包含更多列)
SelectVar
a b c l p v aa ff
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxb2 Dxb2 Dxb2
2 Dxb2 Dxb2 Dxb2 Dxd2 Dxi2 Dxc2 Dxd2 Dxi2
3 Dxc2 Dxd2 Dxi2 Dxi2 tneg Dxd2 Dxi2 tneg
我想计算元素的频率而不将其转换为矢量并使用表格或通过指示元素如
length(SelectVar[SelectVar=="Dxa2"])
是否有其他方法可以计算元素的频率,而不是上段中提到的样本数据帧。
答案 0 :(得分:2)
我想你昨天问了同样的问题Counting the frequency of an element in a data frame
答案修改自,dickoa对上一个问题的回答
而不是data.frame
,如果你创建矩阵,table()
不需要矢量化,它应该工作。
df <- read.table(text = " b c e f g h j
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg", header = TRUE, row.names = 1)
ll<-data.frame(table(as.matrix(df)))
现在,您可以按freq
排序并选择前3
head(ll[order(ll$Freq, decreasing=T),],3)