R语言tapply函数:如何将INDEX名称作为FUN的额外参数?
解决tapply中FUN函数获取分组名称的问题
要让tapply的自定义函数能使用分组的实际名称,你可以通过显式传递分组名的方式实现,以下是最直接可靠的方法:
方法:split + mapply 组合使用
先将数据按分组拆分,再用mapply同时遍历分组数据和对应的分组名称,让函数直接接收分组名作为参数:
data <- data.frame(x = c(4,5,6,2,3,5,8,1), name = c("A","B","A","B","A","A","B","B")) myfun <- function(x, group_name){ paste("The mean of", group_name, "is", mean(x)) } # 按分组拆分数据,得到以分组名为键的列表 grouped_data <- split(data$x, data$name) # 同时遍历分组数据和分组名称,应用自定义函数 mapply(myfun, grouped_data, names(grouped_data))
运行结果:
A B "The mean of A is 4.5" "The mean of B is 4"
内容的提问来源于stack exchange,提问作者Oli Ck
相关产品推荐
相关产品推荐

