簡體   English   中英

R 如何將列添加到 csv 文件列表

[英]R how to add a column to a list of csv files

我正在嘗試將.csv 列表中的每個文件的名稱添加為所有值也等於名稱的最后一列。 我明白了,但結果顯示文件如轉置之類的。 我不知道如何修復它,我嘗試了 data.frame,unlist,但沒有。

這是代碼:

workbooks <- list.files(pattern="*.csv", full.names= T)

read_workbooks <- lapply(workbooks, read.csv)

for (i in 1:length(workbooks)){
  
  name_of_file[i] <- str_replace_all(str_sub(workbooks[i], 3,
                 end = unlist(gregexpr("-current",workbooks[i]))-1),"_"," ")
  
  temp_workbook <- cbind(read_workbooks[i],"Filer Name" = name_of_file[i])
  
  write.csv(temp_workbook, file = paste(name_of_file[i],".csv",sep = ""),
            row.names = F)
}

這是結果:

您可以在匿名 function 的幫助下在同一個lapply調用中執行此操作。

workbooks <- list.files(pattern="*.csv", full.names= TRUE)

lapply(workbooks, function(x) {
  write.csv(transform(read.csv(x), file_name = basename(x)),sprintf('new_%s.csv',
        tools::file_path_sans_ext(basename(x))), row.names = FALSE)
})

讀取workbooks中的每個 csv ,在每個文件中添加一個新的列名,即文件名並寫入新的 csv。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM