我有一个如下图所示的框架。我想按recid对数据进行分组,并添加列count 1和count 2,以便所有值都在col 1和col 2中计数。因此,第1行中的示例count 1将为2,因为10在两列中出现2次,Freqcol 1将为2/4
ID col1 col2 recid
1 10 12 abc_12
2 10 15 abc_12
3 10 10 def_34
Desired output:
ID col1 col2 recid count1 count2 Freqcol1 Freqcol2
1 10 12 abc_12 2 1 0.5 1
2 10 15 abc_12 2 1 0.5 1
3 10 10 def_34 2 2 0.5 0.5
字符串
计算两列中数字的出现次数
df %>%
pivot_longer(-ID) %>%
mutate(count = n(), .by = value) %>%
mutate(freq = count / n()) %>%
pivot_wider(values_from = c(value, count, freq))
型
3条答案
按热度按时间a9wyjsp71#
另一个
dplyr
方法,没有旋转,动态的col#
列的数量(如果有用的话):字符串
数据
型
ut6juiuv2#
我觉得你想要的是
字符串
它返回
型
对于样本数据,
这将产生略有不同的列名,如果需要,您可以在稍后的步骤中重命名它们。
laximzn53#
字符串