R 如何通过另一列的值来表示列?

R 如何通过另一列的值来表示列?,r,dplyr,tidyverse,R,Dplyr,Tidyverse,我想根据一个变量所属的组得到它的平均值。 这是一个可复制的例子 gender <- c("M","F","M","F") vec1 <- c(1:4) vec2 <- c(10:13) df <- data.frame(vec1,vec2,gender) variables <- names(df) variables <- variables[-3] #Wished resul

我想根据一个变量所属的组得到它的平均值。 这是一个可复制的例子

gender <- c("M","F","M","F")
vec1 <- c(1:4)
vec2 <- c(10:13)

df <- data.frame(vec1,vec2,gender)
variables <- names(df)
variables <- variables[-3]
#Wished result
mean1 <- c(mean(c(1,3)),mean(c(2,4)))
mean2 <- c(mean(c(10,12)),mean(c(11,13)))
gender <- c("M","F") 
result <- data.frame(gender,mean1,mean2)
我怎样才能达到这样的结果呢?我想使用向量变量,包含要汇总的变量的名称,而不是编写每个变量,因为我的数据集相当大。

使用聚合

如果公式表示法中出现错误,那是因为您将另一个对象命名为mean。在这种情况下使用rmmean。

使用聚合

如果公式表示法中出现错误,那是因为您将另一个对象命名为mean。在这种情况下使用rmmean。

使用库dplyr

library(dplyr) 

gender <- c("M","F","M","F")
df <- data.frame(1:4,gender)

df %>% 
  group_by(gender) %>% 
  summarise(mean = X1.4 %>% mean())
使用库dplyr

library(dplyr) 

gender <- c("M","F","M","F")
df <- data.frame(1:4,gender)

df %>% 
  group_by(gender) %>% 
  summarise(mean = X1.4 %>% mean())
dplyr解决方案

输出

# A tibble: 2 x 3
  gender mean_vec1 mean_vec2
  <chr>      <dbl>     <dbl>
1 F              3        12
2 M              2        11
dplyr解决方案

输出

# A tibble: 2 x 3
  gender mean_vec1 mean_vec2
  <chr>      <dbl>     <dbl>
1 F              3        12
2 M              2        11

谢谢你迅速的回答。在我的例子中,我有几个变量,其中的几个X我希望提取平均值。我有一个包含所有这些变量名称的向量,即variables.vector,但我不能使用aggregatelistmean=variables.vector。你知道一个解决方法吗?这样我就不必手动写下我想使用的每个列名了?此外,聚合似乎并不保留变量的名称,而是泛称它们:mean、mean.1、mean.2等。如何解决?谢谢@JeandeLéry您可能需要更新您的示例,使其更接近您的真实数据。我已编辑了data.frame,我的请求是否更清晰?有没有一种更优雅的方法来对几个变量进行总结,而不是全部手动编写?@JeandeLéry是的,请参阅更新。谢谢您的快速回答。在我的例子中,我有几个变量,其中的几个X我希望提取平均值。我有一个包含所有这些变量名称的向量,即variables.vector,但我不能使用aggregatelistmean=variables.vector。你知道一个解决方法吗?这样我就不必手动写下我想使用的每个列名了?此外,聚合似乎并不保留变量的名称,而是泛称它们:mean、mean.1、mean.2等。如何解决?谢谢@JeandeLéry您可能需要更新您的示例,使其更接近您的真实数据。我已编辑了data.frame,我的请求是否更清晰?有没有一种更优雅的方法来使用几个变量的摘要而不是全部手动编写?@JeandeLéry是的,请参阅更新pls.Thakns以获取您的答案,您介意检查我的示例的更新吗?我想用一个包含所有变量名称的向量来总结几个变量。Thakns对于你的答案,你介意检查一下我的例子的更新吗?我想用一个包含所有这些变量名称的向量来总结几个变量。太好了,非常感谢!太好了,谢谢!