2016-10-04 49 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 
相關問題