r - 根据R中的三列计算频率

标签 r frequency

这是我的数据框

id    ingredient1    ingredient2    ingredient3
1      apple            milk           cheese
5      pear             apple          
3      lettuces         tomato         salt
12     ribs             tomato         salt
20     cheese           milk           tomato
... ...

这里有200多行 我知道如何通过表格获取频率。但是在这里,我真的不知道该怎么做。 这是我想要的理想输出:

var     freq
apple     2
milk      2
cheese    2
pear      1
lettuces  1
tomato    3
salt      2
ribs      1
... ... 

最佳答案

假设您想要所有“成分”列的总频率,我们通过删除第一列 (df1[-1]) 对数据集进行子集化,然后unlist 生成一个vector 并使用table 获取唯一元素的频率。如果您需要 data.frame 输出,我们可以用 as.data.frame 包装它。

res <- as.data.frame(table(unlist(df1[-1])))

我在成分列中发现了一些空白元素''。如果你想删除它,

subset(res, Var1!='')
#      Var1 Freq
#2    apple    2
#3   cheese    2
#4 lettuces    1
#5     milk    2
#6     pear    1
#7     ribs    1
#8     salt    2
#9   tomato    3

关于r - 根据R中的三列计算频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701607/

相关文章:

r - 如何标记上周五或最后一天或上个月

r - 润滑不匹配的索引类

stream - 如何从count-min-sketch中获取前K个元素?

vb.net - VB.net直播频率检测

java - lucene 索引中的单词重要性

python - 如何结合小波变换和频率滤波

R - 在绘图中处理长标签

r - 如何使用dplyr按id过滤数据框组中列的前10个百分点

r - 合计 : sum not meaningful for factors

mysql - 如何编写频率计数但具有可变 bin 大小的 MYSQL 查询?