gpt4 book ai didi

r - 创建一个按组捕获最频繁出现的变量

转载 作者:行者123 更新时间:2023-12-04 15:15:04 25 4
gpt4 key购买 nike

定义:

df1 <-data.frame(
id=c(rep(1,3),rep(2,3)),
v1=as.character(c("a","b","b",rep("c",3)))
)

英石。
> df1
id v1
1 1 a
2 1 b
3 1 b
4 2 c
5 2 c
6 2 c

我想创建第三个变量 freq包含 v1 中最频繁的观察来自 id英石。
> df2
id v1 freq
1 1 a b
2 1 b b
3 1 b b
4 2 c c
5 2 c c
6 2 c c

最佳答案

您可以使用 ddply 执行此操作和一个自定义函数来挑选最频繁的值:

myFun <- function(x){
tbl <- table(x$v1)
x$freq <- rep(names(tbl)[which.max(tbl)],nrow(x))
x
}

ddply(df1,.(id),.fun=myFun)

请注意 which.max在平局的情况下,将返回最大值的第一次出现。参见 nnet 中的 ??which.is.max随机打破联系的选项的包。

关于r - 创建一个按组捕获最频繁出现的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513378/

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