带括号的动态 groupby 函数
Dynamic groupby function with brackets
df1 <- mtcars %>%
group_by(gear) %>%
summarise(Mittelwert = mean(mpg, na.rm = TRUE))
df1
df2 <- mtcars %>%
group_by(mtcars[[10]]) %>%
summarise(Mittelwert = mean(mtcars[[1]]), na.rm = TRUE)
df2
最后的代码给出了整个data.frame的平均值。由于此代码在循环中使用,因此我需要使用括号。你能帮我得到一个有效结果的动态代码吗?
如果我们想避免使用名称,我们可以使用group_by_at
和summarise_at
来指定列号。
library(dplyr)
mtcars %>%
group_by_at(10) %>%
summarise_at(1, mean, na.rm = TRUE)
# A tibble: 3 x 2
# gear mpg
# <dbl> <dbl>
#1 3.00 16.1
#2 4.00 24.5
#3 5.00 21.4
相当于
mtcars %>%
group_by(gear) %>%
summarise(Mittelwert = mean(mpg, na.rm = TRUE))
# gear Mittelwert
# <dbl> <dbl>
#1 3.00 16.1
#2 4.00 24.5
#3 5.00 21.4
df1 <- mtcars %>%
group_by(gear) %>%
summarise(Mittelwert = mean(mpg, na.rm = TRUE))
df1
df2 <- mtcars %>%
group_by(mtcars[[10]]) %>%
summarise(Mittelwert = mean(mtcars[[1]]), na.rm = TRUE)
df2
最后的代码给出了整个data.frame的平均值。由于此代码在循环中使用,因此我需要使用括号。你能帮我得到一个有效结果的动态代码吗?
如果我们想避免使用名称,我们可以使用group_by_at
和summarise_at
来指定列号。
library(dplyr)
mtcars %>%
group_by_at(10) %>%
summarise_at(1, mean, na.rm = TRUE)
# A tibble: 3 x 2
# gear mpg
# <dbl> <dbl>
#1 3.00 16.1
#2 4.00 24.5
#3 5.00 21.4
相当于
mtcars %>%
group_by(gear) %>%
summarise(Mittelwert = mean(mpg, na.rm = TRUE))
# gear Mittelwert
# <dbl> <dbl>
#1 3.00 16.1
#2 4.00 24.5
#3 5.00 21.4