在表r的顶部插入新行

时间:2013-05-18 03:10:05

标签: r

我有这两个表:

1003 1 0 0 2 0 0 0 0 0 0 0 0 0 
1003 2 0 0 1 0 0 0 0 0 0 0 0 0 
1003 3 2 1 2 2 1 2 1 2 0 0 0 0 
1003 4 2 1 1 2 1 1 1 1 0 0 1 1

snp1 1
snp2 2
snp3 3
snp4 4

我希望使用R将第二个表的第一列添加为第一个表格顶部的行:

snp1 snp2 snp3 snp4
1003 1 0 0 2 0 0 0 0 0 0 0 0 0 
1003 2 0 0 1 0 0 0 0 0 0 0 0 0 
1003 3 2 1 2 2 1 2 1 2 0 0 0 0 
1003 4 2 1 1 2 1 1 1 1 0 0 1 1

请帮忙,非常感谢你。

1 个答案:

答案 0 :(得分:2)

你的问题有点模糊。 snp1...snp4应该是某种列标题吗?第一张表中的其他列怎么样?什么应该填补在那里?我怀疑这是你想要做的,但实际上这确实回答了你的问题:

#table 1
x1 <- read.table(text = "1003 1 0 0 2 0 0 0 0 0 0 0 0 0 
1003 2 0 0 1 0 0 0 0 0 0 0 0 0 
1003 3 2 1 2 2 1 2 1 2 0 0 0 0 
1003 4 2 1 1 2 1 1 1 1 0 0 1 1", header = FALSE)

#table 2
x2 <- read.table(text = "snp1 1
snp2 2
snp3 3
snp4 4", header = FALSE)

#insert the first column of table 2 into the first row of table 1
x3 <- rbind(c(as.character(x2[,1]), rep(NA, ncol(x1) - nrow(x2))), x1)

导致:

    V1   V2   V3   V4   V5   V6   V7   V8   V9  V10  V11  V12  V13  V14
1 snp1 snp2 snp3 snp4 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
2 1003    1    0    0    2    0    0    0    0    0    0    0    0    0
3 1003    2    0    0    1    0    0    0    0    0    0    0    0    0
4 1003    3    2    1    2    2    1    2    1    2    0    0    0    0
5 1003    4    2    1    1    2    1    1    1    1    0    0    1    1