2016-10-04 19 views
0

我有两个数据框如下。我想根据数据1的第一列更改数据2的列名,并且如果数据2的列名与数据1 $ A相同,则将数据1 $ B的名称放在数据2的列名中,否则忽略不相似的列。如何选择相似的列并删除其他人?

数据1:

A B 
2-32 AD 
3-45 AC 
5-44 BC 

数据2:

RS  2-32 5-66 5-44 6-11 3-45 
rs34  3  5  6  7 5 
rs45  4  3  3  4 5 

输出:

RS  AD BC AC 
rs34  3 6  5 
rs45  4 3  5 

我已经使用 'ifelse' 命令,但我无法除去unsimilar列。

a<- ifelse (colnames(Data2) %in% Data1 $ A, Dat1 $ B , '') 
+1

用'dput'输出您的示例数据或明确的包括它创建它使人们更方便的人帮助的代码。 – NGaffney

回答

1

你可以这样做:

names(df2)[-1] <- df1[match(names(df2)[-1], df1$A),]$B 
df2 <- df2[,!is.na(names(df2))] 

# RS AD BC AC 
#1 rs34 3 6 5 
#2 rs45 4 3 5 
相关问题