我讀了一個檔案夾中的檔案串列:
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)
我現在有一個包含單個檔案作為 R 中資料幀的大串列:

但我很難將它們保存為新檔案。我希望新檔案與以前的檔案同名,但保存為 csv。
例如當前名稱:
144881.tab
144883_2.tab
156889.tab
156889_2.tab
我希望它們保存為:
144881.csv
144883_2.csv
156889.csv
156889_2.csv
我認為這會相對簡單(我確信確實如此)但經過幾個小時的互聯網搜索后,我仍然無法找到我要找的東西。
注意:我只提供了我的資料的一個小螢屏截圖(帶有 2 個示例),但是我在這個檔案夾中有超過 25 個檔案,所以我希望使用以前的檔案名以避免必須手動重新輸入它們。先感謝您!
uj5u.com熱心網友回復:
你可以試試:
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%>%而不是|>.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360944.html
