我必須從一堆檔案名中提取特定日期。我發現以下代碼可以幫助它:
dates <- unique(gsub(pattern = "xxxxxx", replacement = "xxxx", x = filenames))
示例檔案名: LC08_L1TP_211048_20180705_20180717_01_T1_2018-07-05_B5.TIF
提取日期: 20180705
誰能告訴我在上面的代碼中為模式和替換填寫什么。
uj5u.com熱心網友回復:
如果下劃線在同一個地方,那么這就足夠了:
unlist(strsplit(str, "_"))[4]
uj5u.com熱心網友回復:
假設您想要第 4 個下劃線分隔的欄位,請嘗試這些。如果 x 是向量,它們也可以作業。
1)這使用 read.table。
x <- "LC08_L1TP_211048_20180705_20180717_01_T1_2018-07-05_B5.TIF"
read.table(text = x, sep = "_")[[4]]
## [1] 20180705
2)或 usingsub和正則運算式使用 this 也適用于向量 x:
sub("^([[:alnum:]] _){3}(\\d )_.*", "\\2", x)
## [1] "20180705"
3)如果日期總是出現在字符位置 18 到 25 中,則:
substring(x, 18, 25)
## [1] "20180705"
4)如果不是上述假設,而是假設我們希望在下劃線后第一次出現 8 位數字,則:
sub("^.*?_(\\d{8}).*", "\\1", x)
## [1] "20180705"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327688.html
標籤:r
上一篇:如何將平均值放入特定日期?
下一篇:創建一個以外部串列為條件的新變數
