2013-07-25 22 views
0

我有這樣的:data1屬性一個名稱爲多列有R

 Aux  Cux 
aa  3  3 
bbb 0  0 
ccc 7.8  7.8 
dddd 2.32 2.09 
eee 5.68 5.45 

而這,data2

 Aux  Cux 
aa  6  6 
bbb 0.3  0.4 
ccc 7.5  2.9 
dddd 2.09 1.48 
eee 0.62 0.62 

而且我想這最後的數據

  file1  |  file2  | 
     Aux | Cux | Aux | Cux | 
aa  3 | 3 | 6 | 6  | 
bbb 0 | 0 | 0.3 | 0.4 | 
ccc 7.8 | 7.8 | 7.5 | 2.9 | 
dddd 2.32 | 2.09 | 2.09 | 1.48 | 
eee 5.68 | 5.45 | 0.62 | 0.62 | 

我認爲, csv文件將保存爲這樣

,file1,,file2,, 
,Aux,Cux,Aux,Cux 
aa,3,3,6,6 
bbb,0,0,0.3,0.4 
ccc,7.8,7.8,7.5,2.9 
dddd,2.32,2.09,2.09,1.48 
eee,5.68,5.45,0.62,0.62 

我該怎麼辦?謝謝

+0

你試過'cbind'或'merge'? – Thomas

+0

-1它是R的基礎知識,嘗試一些手冊。你試過什麼了? – zx8754

+0

使用'write.table'並注意它的'append'參數。 – Roland

回答

2

的數據幀:

data1 <- read.table(text = "Aux  Cux 
aa  3  3 
bbb 0  0 
ccc 7.8  7.8 
dddd 2.32 2.09 
eee 5.68 5.45", header = TRUE, row.names = 1) 

data2 <- read.table(text = "Aux  Cux 
aa  6  6 
bbb 0.3  0.4 
ccc 7.5  2.9 
dddd 2.09 1.48 
eee 0.62 0.62", header = TRUE, row.names = 1) 

創建一個字符矩陣:

dat <- as.matrix(rbind(c(names(data1), names(data2)), 
         cbind(data1, data2))) 

組行和列名:

dimnames(dat) <- list(c("", rownames(data1)), c("file1", "", "file2", "")) 

寫表:

write.csv(dat, file = "filename.csv", quote = FALSE) 

生成的文件:

,file1,,file2, 
,Aux,Cux,Aux,Cux 
aa,3,3,6,6 
bbb,0,0,0.3,0.4 
ccc,7.8,7.8,7.5,2.9 
dddd,2.32,2.09,2.09,1.48 
eee,5.68,5.45,0.62,0.62 
0

試試這個:

data3 = cbind(data1, data2) 
header = matrix(c('file1','','file2',''), nrow=1) 
write.table(header, "output.csv", sep=',', quote=F, col.names=F, row.names=F) 
write.table(data3, "output.csv", append = T, row.names=F) 

您可能只需要玩弄row.names獲得這一權利。