2016-01-22 95 views
0

我在Windows 7上運行RStudio 3.2.3。我需要閱讀文本文件中的某些文本。下面的代碼成功地將原始文件中第1至24行附加到新文件中。我需要添加到新文件中的行總是以「DATE ACQUIRED =」開頭。我可以搜索該行(第23行),只需讀取日期,並將日期附加到文件中?如果我可以將它附加到電子表格中,那將會很棒。R - 讀取文件中的文本並將其附加到另一個

con <- file("LC80140332015238LGN00_MTL.txt") 
     x <- readLines(con,24) 
     unlink("data") 
     write(x,file="myMTLfile2.txt",append=TRUE)[/CODE] 
+0

日期的格式是什麼?你能提供一大塊LC80140332015238LGN00_MTL.txt嗎? –

+0

線條10至21: GROUP = PRODUCT_METADATA DATA_TYPE = 「L1T」 ELEVATION_SOURCE = 「GLS2000」 OUTPUT_FORMAT = 「的GeoTIFF」 SPACECRAFT_ID = 「LANDSAT_8」 SENSOR_ID = 「OLI_TIRS」 WRS_PATH = 14 WRS_ROW = 33 NADIR_OFFNADIR = 「NADIR」 TARGET_WRS_PATH = 14 TARGET_WRS_ROW = 33 DATE_ACQUIRED = 2015年8月26日 SCENE_CENTER_TIME =「15:40:03.5512487Z – Regulus

回答

1
使用 grepsub應該只是罰款

簡單解析

lines <- readLines("LC80140332015238LGN00_MTL.txt") 
# get lines with DATE_ACQUIRED 
matched_lines <- lines[which(grepl("DATE_ACQUIRED", lines))] 
# extract date 
date_acquired <- sub(".*(\\d{4}-\\d{2}-\\d{2}).*", "\\1", matched_lines) 
write(date_acquired, "myMTLfile2.txt", append=TRUE) 

您可能需要改變正則表達式日期解析,如果你有不同的格式的日期。

+0

我仍然困惑,因爲子()是用於替換我跑的代碼和RStudio返回「object x not found」。我認爲'x'是替代變量,我沒有看到a需要替換文字;我不明白爲什麼我需要聲明一個變量'x'。我只需要複製日期並將其附加到新文件。 – Regulus

+0

我將錯誤的行復制到了答案中。現在修復它。 'sub'用來替換隻有日期的字符串,在這種情況下 - 提取日期。 –

相關問題