我有两个数据框如下。我想根据数据1的第一列更改数据2的名称,如果数据2的名称与数据1 $ A相似,则将数据1的名称设置为数据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'命令,但我无法删除不相似的列。
a<- ifelse (colnames(Data2) %in% Data1 $ A, Dat1 $ B , '')
答案 0 :(得分: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