我似乎找不到这个问题的例子:
我想用新变量(V2)的每个ID中出现频率最高的值替换分类变量(V1)的值。如果V1中没有出现频率最高的值,我想用最高的值替换。
下面是我的数据示例:
my_data <- data.frame(ID = c("2", "2", "2", "2" ,"4", "4", "4", "4"),
V1 = c("2", "1", "2", "1", "3", "1", "4", "3"))
这是我希望它看起来像:
任何帮助都非常感谢!!
2条答案
按热度按时间cgyqldqp1#
一种方法是先按
n
和V1
的频率排序,然后对每个ID
,先取n
,再取V1
,最后连接回原始数据(例如,我用两个额外的行修改了数据,其中给定的ID
没有最大值)。产出
2nc8po8w2#
更新(添加max()并删除[1]):
我们可以这样做:使用
add_count
: