Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将dplyr函数应用于除一列以外的所有列_R_Dplyr - Fatal编程技术网

将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(.))