gpt4 book ai didi

r - 按ID选择匹配度最高的行

转载 作者:行者123 更新时间:2023-12-02 09:11:10 26 4
gpt4 key购买 nike

我有一个这样的数据框:

df <- data.frame(id = c(1,1,1,2,2,3,3,3,3,4,4,4),
torre = c("a","a","b","d","a","q","t","q","g","a","b","c"))

并且我希望我的代码为每个 id选择重复次数更多的 torre,或者为 torre选择最后一个 id(如果没有一个重复的次数超过另一个,那么请获取这样的新数据帧):
df2 <- data.frame(id = c(1,2,3,4), torre = c("a","a","q","c"))

最佳答案

您可以使用aggregate:

aggregate(torre ~ id, data=df,
FUN=function(x) names(tail(sort(table(factor(x, levels=unique(x)))),1))
)

对此功能的完整解释有些复杂,但是大多数工作是由 FUN=参数完成的。在这种情况下,我们正在制作一个函数,该函数获取每个 torre的频率计数,以递增的顺序对其进行排序,然后使用 tail(, 1)获得最后一个频率计数并取其名称。 aggregate()函数然后针对每个id分别应用此函数。

关于r - 按ID选择匹配度最高的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51954765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com