2016-05-03 41 views
0

假設我有R中列表的列表,例如:R寫入列表

列表1含有10對座標(X,Y)

列表2包含20對座標(X,Y)

...

列表20包含10個對座標(X,Y)

我想寫入一個輸出文件(.txt )文件那些列表。在每個列表的末尾,我想添加一個空行來分隔它們。

我已經知道

P2 = as.data.frame(do.call(rbind,P)),如果p是我的名單

的名單將變成一個數據幀。

然後write.table(p2,file =「forest」,row.names = FALSE)將打印每個列表,但沒有空格。有人能幫我嗎?在這裏可以使用「貓」嗎,像貓(「」,p)?

在此先感謝!

+0

請補充一點,就是你嘗試和編輯與正確的格式你的問題。 –

回答

1

你絕對是在正確的軌道與貓()。下面我創建一個列表(不同大小)。然後,我將每個列表轉換爲data.frame類對象,然後將其寫入文本文件。在每次write.table()調用之後,我使用cat()輸入空格(「\ n」)。

這可能應該在您的最後運行(可能會收到一條警告消息,指出它正在打印列名稱 - 不用擔心這個... txt文件仍然會生成)並將輸出一個名爲test的txt文件。 txt到你的工作目錄(getwd())。

exp_list<-list(list(x=rnorm(10,500,10),y=rnorm(10,500,10)), 
       list(x=rnorm(20,500,10),y=rnorm(20,500,10)), 
       list(x=rnorm(20,500,10),y=rnorm(20,500,10))) 

for(i in 1:length(exp_list)){ 
    write.table(data.frame(exp_list[[i]]),file='test.txt',append=TRUE, row.names=FALSE) 
    cat('\n',file='test.txt',append = TRUE) 
} 
-1

從阿爾曼

使用樣本數據
library(dplyr) 

exp_list<-list(list(x=rnorm(10,500,10),y=rnorm(10,500,10)), 
       list(x=rnorm(20,500,10),y=rnorm(20,500,10)), 
       list(x=rnorm(20,500,10),y=rnorm(20,500,10))) 

exp_list %>% 
    lapply(as.data.frame) %>% 
    bind_rows(.id = "ID") %>% 
    mutate(ID = as.numeric(ID)) %>% 
    write.table(sep = " ", row.names = FALSE) 
+1

這實際上並不在工作目錄中輸出一個txt文件,因此不回答OP的問題。此外,當您將write.table file =參數設置爲「testfile.txt」時,它會創建一個txt文件,但數據框不會由空行分隔。 – AOGSTA