【发布时间】:2017-04-24 20:45:39
【问题描述】:
假设我的数据如下所示:
df
ID Location
1 54
2 35
3 54
4 35
5 71
我有兴趣找出访问给定位置的频率,然后根据位置列中的值将该频率(即总和)分配给一个新列。
首先,我尝试使用table 函数:
count<-as.data.frame(table(df))
count
var1 freq
54 2
35 2
71 1
从这里开始,我想在 df 中创建一个名为 count 的新列,例如,它为对应于 Location=54 的每个 ID 分配 freq=2。即,df 现在看起来像这样:
df
ID Location count
1 54 2
2 35 2
3 54 2
4 35 2
5 71 1
我的真实数据包含太多 Location 值,我无法编写 ifelse 语句来有条件地分配这些计数值。我不确定如何以有效的方式完成(我也可以创建一个空列并在 dplyr 中使用replace 函数,但这同样很费力。有什么提示吗?
谢谢!
【问题讨论】:
标签: r dplyr conditional