将dplyr函数应用于除一列以外的所有列
给定一个数据框,除最后一列外,所有列中都有数值,如何计算整行的平均值 在本例中,我使用了所有列,包括我想省略的将dplyr函数应用于除一列以外的所有列,r,dplyr,R,Dplyr,给定一个数据框,除最后一列外,所有列中都有数值,如何计算整行的平均值 在本例中,我使用了所有列,包括我想省略的name列 df <- as.data.frame(matrix(1:40, ncol=10)) %>% mutate(name=LETTERS[1:4]) %>% mutate(mean=rowMeans(.)) 在您的设置中,您可以使用 df <- as.data.frame(matrix(1:40, ncol=10)) %>% m
name
列
df <- as.data.frame(matrix(1:40, ncol=10)) %>%
mutate(name=LETTERS[1:4]) %>%
mutate(mean=rowMeans(.))
在您的设置中,您可以使用
df <- as.data.frame(matrix(1:40, ncol=10)) %>%
mutate(name=LETTERS[1:4]) %>%
mutate(mean=rowMeans(.[,1:10]))
df%
变异(名称=字母[1:4])%>%
变异(平均值=行平均值([,1:10]))
您可以尝试:
df %>%
mutate(mean = select(., -matches("name")) %>% rowMeans(.))
我可能会用
apply
(即,apply(df[,1:10],1,mean)
)来做这件事。生活中并非一切都是关于dplyr
,只要做df$mean%select(-ncol(df))%%变异(mean=rowMeans()
@davidernburg我真的认为这两个都是可行的答案。您应该将您的评论转换为答案。@Davidernburg您的dplyr
建议将从最终结果中删除name
,并且与OP所需的输出不匹配。@StevenBeaupré是的,我后来看到了,但无法编辑。您的方法可能是惯用的方法,但我发现它太多了,无法在数据集上只计算rowMeans
df %>%
mutate(mean = select(., -matches("name")) %>% rowMeans(.))