gpt4 book ai didi

r - 添加更多参数以在dplyr中进行总结

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

我的问题是,除了在带有多个参数的summarise_each之外定义一个函数外,还有另一种方法可以直接在summarise_each中添加参数吗?

例如,我想在没有NA的情况下获取均值。

mean_fun=function(x)mean(x,na.rm=TRUE)
AA_group=AA_new %>% group_by(tractID)
AA_group %>% summarise_each(funs(mean_fun))

我想知道是否有一种方法可以直接将 na.rm=TRUE添加到 summarise_each中,例如 more_args选项吗?

而且如果我将mean_fun直接放在summarise_each中,
AA_group %>% summarise_each(funs(function(x)mean(x,na.rm=TRUE)))

错误是
expecting a single value

这是否意味着每次我们想使用summarise_each时,都必须在该函数之外定义一个函数?

最佳答案

我猜您正在寻找.,如?funs所述。

这是一个使用“iris”数据集的小示例,但在其中添加了一些NA值。

iris2 <- iris
set.seed(1)
iris2[-5] <- lapply(iris2[-5], function(x) {
x[sample(length(x), sample(10, 1))] <- NA
x
})

现在,比较以下内容:
iris2 %>% 
group_by(Species) %>%
summarise_each(funs(mean))
# Source: local data frame [3 x 5]
#
# Species Sepal.Length Sepal.Width Petal.Length Petal.Width
# 1 setosa 5.006 3.428 NA NA
# 2 versicolor NA NA NA NA
# 3 virginica NA NA NA NA


iris2 %>%
group_by(Species) %>%
summarise_each(funs(mean_fun))
# Source: local data frame [3 x 5]
#
# Species Sepal.Length Sepal.Width Petal.Length Petal.Width
# 1 setosa 5.006000 3.428000 1.455319 0.2468085
# 2 versicolor 5.939583 2.767347 4.256250 1.3208333
# 3 virginica 6.597959 2.979167 5.547917 2.0191489

iris2 %>%
group_by(Species) %>%
summarise_each(funs(mean(., na.rm = TRUE)))
# Source: local data frame [3 x 5]
#
# Species Sepal.Length Sepal.Width Petal.Length Petal.Width
# 1 setosa 5.006000 3.428000 1.455319 0.2468085
# 2 versicolor 5.939583 2.767347 4.256250 1.3208333
# 3 virginica 6.597959 2.979167 5.547917 2.0191489

关于r - 添加更多参数以在dplyr中进行总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26081185/

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