【发布时间】:2014-02-05 15:59:30
【问题描述】:
我有以下数据框(这是一个示例,数据框可以包含更多列)
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"])
除了上一段中提到的示例数据帧之外,还有其他方法可以计算元素的频率吗?
【问题讨论】:
-
table有什么问题? -
你的最终目标是什么?如果您能解释您将如何处理频率计数,我们或许可以提出不同的方法。
-
我像上面一样生成重复的数据框,其中列名可以是不同的、更长或更短的所有三行。我不想每次都必须操作数据,因为我想将三个最常见的元素链接到另一个表达式。在创建一个表使用的向量时,我每次都必须操作数据,因为元素和列名可能不同
-
构造一个简单的函数对您在评论中描述的内容没有帮助吗?像
f = function(mydf) sort(table(unlist(mydf)))这样的东西。而且,也许您可以以某种方式将所有数据框放在一个列表中并使用lapply操作它们? -
出于好奇,为什么要使用
data.frame?如果列都包含相同的数据类型,matrix似乎更合适,也许更容易操作。