2014-10-08 67 views
0

我有一个数据帧Ÿ看起来是这样的:使用数据帧Y中的数据用dplyr重命名数据帧X中的列?

Y = data.frame(names=as.factor(c("name1", "name2")), other=c(1,2)) 

和数据帧X,看起来是这样的:

X = data.frame(col1=c(1,0,1,1),col2=c(0,0,0,1), col3=c(0,0,0,1)) 

我要重命名X的列

X = data.frame(name1=c(1,0,1,1),name2=c(0,0,0,1), col3=c(0,0,0,1)) 

我试过以下,但它不起作用

library(dplyr) 
X = X %>% rename(as.character(Y$names[[1]]) = col1) 

感谢您的帮助!

+0

据我所知,你想重命名基于该值的列在Y的1列可能是一个好主意,包括您的最终data.frame – ccapizzano 2014-10-08 12:50:12

回答

4

试试这个:

colnames(X)<-Y$names 
+0

什么如果X有许多列,并且我想只为coumns n到m设置名称?对于我的例子,只对第1列。我尝试colnames(X [,1])< - Y $ names [1]但它不起作用:_( – Ignacio 2014-10-08 13:01:36

+1

这对我修改的例子诀窍。colnames(X)[ 1:2] < - as.character(Y $名称[1]) – Ignacio 2014-10-08 13:05:19

相关问题