2016-01-22 33 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'用来替换只有日期的字符串,在这种情况下 - 提取日期。 –

相关问题