我有一個文件夾,其中包含數百個.csv文件,我希望將它們合併到一個數據框中。在R中合併具有不匹配標題的CSV文件
我一直在使用這個代碼工作得比較好,但只適用於匹配頭文件。
df <- do.call(rbind, lapply(filenames , read.csv))
兩部分問題。
1)我想追加此do.call代碼以包括一個附加列,其包括.csv文件名數據中的每一行
2.)我也想能夠合併.csv文件與不匹配的標題。每個文件都有四列(名稱不同),但數據類型匹配。所以我想強制文件綁定在一起,無論列標題。
這篇文章是有幫助的,但不是合併與非mathcing頭的文件
Merge multiple CSV files and remove duplicates in R
我也用這個代碼;再次只爲匹配頭的文件
for (file in filenames){
# if the merged dataset doesn't exist, create it
if (!exists("dataset")){
dataset <- read.csv(file, header=TRUE, sep="\t")
}
# if the merged dataset does exist, append to it
if (exists("dataset")){
temp_dataset <-read.csv(file, header=TRUE, sep="\t")
dataset<-rbind(dataset, temp_dataset)
rm(temp_dataset)
}
}
什麼是很清楚這裏是你想不匹配,將列會怎麼樣呢?你刪除它們嗎,你把它們都保存了嗎?如果是後者,沒有新列的文件會發生什麼 –
@RicardoSaporta - 我稍微編輯了這個問題 - 每個文件有四列(名稱不同),但數據類型匹配。所以我想強制文件綁定在一起,無論列標題。 – Flammulation
是從一個文件到下一個文件總是處於同一順序的列?如果是這樣,只需使用'header = FALSE'來讀取它們,然後將它們綁定到 –