我希望能够从数据框的多个列中计算汇总变量。当打出所有行名时,这是可能的,但我想使用starts_with()和类似的函数。
df <- data.frame(A1 = rnorm(100, 0, 1),
A2 = rnorm(100, 0, 1),
A3 = rnorm(100, 0, 1),
B1 = rnorm(100, 0, 1),
B2 = rnorm(100, 0, 1))
适用的方法:
library(tidyverse)
df %>% mutate(A = (A1 + A2 + A3)/3)
df %>% mutate(A = rowMeans(select(., A1:A3)))
然而,当汇总多个变量时,前者会变得很烦人,而当汇总多行时,后者会变得非常缓慢。我怀疑必须有更快的解决方案。
不起作用的方法:
df %>% mutate(A = mean(A1:A3))
df %>% group_by(row_number()) %>% mutate(A = mean(A1:A3))
df %>% group_by(row_number()) %>% mutate(A = mean(starts_with("A")))
我的问题是:有没有一种方法可以在mutate()中使用mean()等函数来计算行均值,最好不必拼写每个变量?