我想把这行代码变成一个函数:
mutate(var_avg = rowMeans(select(., starts_with("var"))))
它在管道中工作:
df <- read_csv("var_one,var_two,var_three
1,1,1
2,2,2
3,3,3")
df %>% mutate(var_avg = rowMeans(select(., starts_with("var"))))
># A tibble: 3 x 4
> var_one var_two var_three var_avg
> <dbl> <dbl> <dbl> <dbl>
>1 1 1 1 1
>2 2 2 2 2
>3 3 3 3 3
这是我的尝试(我是编写函数的新手):
colnameMeans <- function(x) {
columnname <- paste0("avg_",x)
mutate(columnname <- rowMeans(select(., starts_with(x))))
}
它不起作用。
df %>% colnameMeans("var")
>Error in colnameMeans(., "var") : unused argument ("var")
我有很多要学习的功能,我不知道从哪里开始解决这个问题。任何帮助将非常感激。请注意,这是一个简化的示例。在我的真实数据中,我有几个列前缀,我想计算每个列的逐行平均值。编辑:能够一次运行多个前缀的函数将是一个奖励。