示例数据:
t1 <- data.frame(
CName=c("334","5as4","ggg","bbb"),
D1=c(1," ",3,1),
D2=c(3,4,5,5)
)
t2 <- data.frame(
PName=c("zz","yy","xx","ww"),
`334`=c(5,6,3,5),
"ggg"=c(7,5,4,3),
`5as4`=c(9,9,1,1),
check.names=FALSE
)
产:
t1
CName D1 D2
1 334 1 3
2 5as4 4
3 ggg 3 5
4 bbb 1 5
t2
PName 334 ggg 5as4
1 zz 5 7 9
2 yy 6 5 9
3 xx 3 4 1
4 ww 5 3 1
我希望将列t1$CName
列与t2
的列标题相匹配。
所需的输出是:
PName 334 ggg 5as4
D1 1 3
D2 3 5 4
1 zz 5 7 9
2 yy 6 5 9
3 xx 3 4 1
4 ww 5 3 1
答案 0 :(得分:1)
在我看来,您确实希望将t1
的转置与t2
合并:
第1步:创建表t1
的转置副本:
tt1 <- as.data.frame(t(t1[, -1]), stringsAsFactors=FALSE)
names(tt1) <- t1[, 1]
tt1$PName = rownames(tt1)
tt1
334 5as4 ggg bbb PName
D1 1 3 1 D1
D2 3 4 5 5 D2
第2步:合并
merge(tt1, t2, all=TRUE, sort=FALSE)
334 5as4 ggg PName bbb
1 1 3 D1 1
2 3 4 5 D2 5
3 5 9 7 zz <NA>
4 6 9 5 yy <NA>
5 3 1 4 xx <NA>
6 5 1 3 ww <NA>
第3步:现在,您只需删除不需要的列。
334 5as4 ggg PName
1 1 3 D1
2 3 4 5 D2
3 5 9 7 zz
4 6 9 5 yy
5 3 1 4 xx
6 5 1 3 ww
即使您声明的数据大小为1000个条目,这对R来说也不是问题。