我讀了一個文件夾中的文件列表:
files <- list.files("E:new data/Depth and Temp")
allFiles.list <- lapply(files, read.table, sep = '\t')
然後將一組函數應用於已讀取的文件,這些文件工作正常:
load_file <- function(files) {
tab_file <- read.table(files, header = TRUE)
tab_file$Date.Time <- as_datetime(tab_file$Time)
tab_file$Date.Time <- tab_file$Date.Time + hours(9)
setnames(tab_file, old = c('External.Temperature','Corrected.Depth.Channel'), new = c('Temp','Depth'))
tab_file
}
list_of_files = list.files(pattern="*.tab")
data <- lapply(X = list_of_files, FUN = load_file)
但是我很難將它們保存為新文件。我希望新文件與以前的文件同名,但保存為 csv。
例如當前名稱:
144881.tab
144883_2.tab
156889.tab
156889_2.tab
我希望它們保存為:
144881.csv
144883_2.csv
156889.csv
156889_2.csv
我認為這會相對簡單(我確信確實如此)但經過幾個小時的互聯網搜索後,我仍然無法找到我要找的東西。
注意:我只提供了我的數據的一個小屏幕截圖(帶有 2 個示例),但是我在這個文件夾中有超過 25 個文件,所以我希望使用以前的文件名以避免必須手動重新輸入它們。先感謝您!
你可以試試:
filenames <- list.files(pattern="*.tab")
file_prefix <- filenames |> stringr::str_extract("[:graph:]{1,1000}(?=\\.)")
names(data) <- file_prefix
file_prefix |> purrr::map(~write.csv(x = data[[.x]], file = paste0(.x, ".csv")))
如果您有舊版本的 R,則可以使用 magrittrs%>%
而不是|>
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句