如何重命名包含R中常见短语的数据帧列表中的变量

如何重命名包含R中常见短语的数据帧列表中的变量,r,list,join,merge,R,List,Join,Merge,我有一个R中的data.frames列表。我想使用join_all将它们连接在一起,但它们的共同变量没有完全相同的名称 下面是一个示例数据集 compA <- rep(1:35) compB <- rep(1:35) compC <- rep(1:35) valuesa <- rnorm(35) valuesb <- rnorm(35) valuesc <- rnorm(35) A <- data.frame(compA, valuesa) B <

我有一个R中的data.frames列表。我想使用
join_all
将它们连接在一起,但它们的共同变量没有完全相同的名称

下面是一个示例数据集

compA <- rep(1:35)
compB <- rep(1:35)
compC <- rep(1:35)
valuesa <- rnorm(35)
valuesb <- rnorm(35)
valuesc <- rnorm(35)
A <- data.frame(compA, valuesa)
B <- data.frame(compB, valuesb)
C <- data.frame(compC, valuesc)
list <- list(A, B, C)

compA我们可以使用
lappy
grep
如下:

lapply(list, function(x){setnames(x, old = grep("comp", names(x)), new = "Comp")})
对于前10行,使用您的代码将为您提供:

> JointData <- join_all(list, by="Comp", type='left')
> JointData
   Comp      valuesa      valuesb     valuesc
1     1  1.459809314  1.074395596  0.05459735
2     2 -1.442052931  0.259653583 -0.18003632
3     3  0.856110943  0.020583632 -2.23210988
4     4 -0.458347842 -0.472916330  0.03734474
5     5  0.722777326  0.372389619 -1.18025645
6     6 -1.079007191  1.812031538  0.81196831
7     7 -0.478990080 -0.298745059 -0.22902673
8     8 -0.015821375  0.414506210 -0.20809839
9     9 -0.844872308 -0.208205289  0.53310519
10   10  0.330617594 -0.177282871 -0.67203133
>连接数据连接数据
公司价值A价值B价值C
1     1  1.459809314  1.074395596  0.05459735
2     2 -1.442052931  0.259653583 -0.18003632
3     3  0.856110943  0.020583632 -2.23210988
4     4 -0.458347842 -0.472916330  0.03734474
5     5  0.722777326  0.372389619 -1.18025645
6     6 -1.079007191  1.812031538  0.81196831
7     7 -0.478990080 -0.298745059 -0.22902673
8     8 -0.015821375  0.414506210 -0.20809839
9     9 -0.844872308 -0.208205289  0.53310519
10   10  0.330617594 -0.177282871 -0.67203133

因此
JointData
将有一列,
Comp
,另外三列,
valuesa
valuesb
valuesc
?是的,如果可能的话?谢谢,这太完美了!很乐意帮忙。如果我的建议恰当地回答了您的问题,请单击勾号将其作为所选答案。完成。感谢堆:-)
> JointData <- join_all(list, by="Comp", type='left')
> JointData
   Comp      valuesa      valuesb     valuesc
1     1  1.459809314  1.074395596  0.05459735
2     2 -1.442052931  0.259653583 -0.18003632
3     3  0.856110943  0.020583632 -2.23210988
4     4 -0.458347842 -0.472916330  0.03734474
5     5  0.722777326  0.372389619 -1.18025645
6     6 -1.079007191  1.812031538  0.81196831
7     7 -0.478990080 -0.298745059 -0.22902673
8     8 -0.015821375  0.414506210 -0.20809839
9     9 -0.844872308 -0.208205289  0.53310519
10   10  0.330617594 -0.177282871 -0.67203133