2013-12-16 80 views
0

具有以下格式的TXT文件分離兩個一個文件:使用時間戳

2011-01-01 00:00:00 text text text text 
2011-01-01 00:01:00 text text text text 
text 
2011-01-01 00:02:00 text text text text 
.... 
.... 
.... 
.... 
2011-01-02 00:00:00 text text text text 
2011-01-02 00:01:00 text text text text 

所有文件中包含的兩個日曆天的數據。 是否可以將文件分成兩個不同的文件,每個文件一個?

+0

要在R中輸入數據嗎?或者你只是想分割文件? – Thomas

+0

拆分它們並將它們保存到2個不同的txt文件中 – foc

+0

文件是否已排序?是否有需要複製到這兩個文件的標題? – Thomas

回答

1
dat <- readLines(textConnection(" 2011-01-01 00:00:00 text text text text 
    2011-01-01 00:01:00 text text text text text 
    2011-01-01 00:02:00 text text text text 
    2011-01-02 00:00:00 text text text text 
    2011-01-02 00:01:00 text text text text")) 

grouped.lines <- split(dat, substr(dat, 1,11)) 
grouped.lines 
$` 2011-01-01` 
[1] " 2011-01-01 00:00:00 text text text text"  
[2] " 2011-01-01 00:01:00 text text text text text" 
[3] " 2011-01-01 00:02:00 text text text text"  

$` 2011-01-02` 
[1] " 2011-01-02 00:00:00 text text text text" 
[2] " 2011-01-02 00:01:00 text text text text" 

它更有效地處理這些作爲一個單獨的列表項目。如果將它們分成不同的對象,將會產生問題。它們可以通過文本名稱或數字引用進行訪問。 (但請注意,如果您的文本文件中包含前導空格,則需要使用前導空格。)

1

您將不得不閱讀文件的所有行。

,你可以嘗試這樣做使用

library(package=reshape) 

則函數read.table可能有助於

那麼你將有比較所有行,並將它們在兩個新文件

+0

這是一條評論/建議,不是答案。 – Thomas

2

讀出的數據寫回in with read.table()

我們應該有一個data.frame類似於:

df <- data.frame(d = c("2011-01-01 00:00:00", "2011-01-01 00:01:00"), x = 0:1) 

申請拆分()

dfl <- split(df, df$d) 

地圖write.table分裂

Map(write.table, dfl, file = paste(names(dfl), "txt", sep = "."), row.names = FALSE, sep = ";") 
+0

請注意,它似乎像OP希望按日期分割,而不是日期時間。 – Henrik