【发布时间】:2021-12-28 15:11:50
【问题描述】:
Df1:
variant ID1 ID2 ID3 ID4 .... ID80000
123 0 1 2 1 0
321 1 2 1 1 1
543 1 1 2 1 1
6542 1 0 0 1 0
243 1 0 2 1 1
654 0 1 1 2 1
342 1 2 1 2 1
present 0 1 0 1 0
Df2:
ID sex yob disease
ID1 M 10/10/1910 cancer
ID2 F 05/02/2000 CML
ID3 F 01/01/1983 gout
我想将 DF2 中的列作为行添加到 DF1 中,通过匹配 ID 将列名放入 DF1 的变体列中
期望的结果
variant ID1 ID2 ID3 ID4 .... ID80000
123 0 1 2 1 0
321 1 2 1 1 1
543 1 1 2 1 1
6542 1 0 0 1 0
243 1 0 2 1 1
654 0 1 1 2 1
342 1 2 1 2 1
present 0 1 0 1 0
sex M F F NA NA
yob 10/10/1910 05/02/2000 01/01/1983 NA NA
disease cancer CML gout NA NA
我试过了:
df1["sex",] <- df2$sex[match(df2$ID, colnames(df1),]
这不起作用。
我已经得到了这个工作:
df1["sex",] <- ifelse(colnames(df1) %in% df2$ID, df2$sex, NA)
我什至不知道如何一次处理多个列。
任何帮助将不胜感激
【问题讨论】:
-
你能做到
dput(df1[1:7, 1:5])和dput(df2[1:3, 1:4])并分享输出以使你的示例可重现吗? -
恐怕我在气密的 HPC 环境中工作,因此无法导出任何数据,因此无法导出表。很高兴编辑表格以使其更具可读性
标签: r dataframe merge data.table