根据R中的三列计算频率

cut*_*nny 2 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
... ...
Run Code Online (Sandbox Code Playgroud)

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

var     freq
apple     2
milk      2
cheese    2
pear      1
lettuces  1
tomato    3
salt      2
ribs      1
... ... 
Run Code Online (Sandbox Code Playgroud)

akr*_*run 8

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

res <- as.data.frame(table(unlist(df1[-1])))
Run Code Online (Sandbox Code Playgroud)

''在配料栏中找到了一些空白元素.如果你想删除它,

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
Run Code Online (Sandbox Code Playgroud)