这是我的数据框
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/