我有一個檔案夾,其中包含需要合并在一起的多個 CSV 檔案,一次完成一個可能需要很長時間。檔案的性質是一個變數可能出現在 2 個或多個 CSV 檔案中,但并非全部出現。但是,那些沒有它的可能在其他地方有共同的變數。
下面我提供了一個說明性示例來說明這一點:-
#these files lie within the same folder on my machine
testdataframe_1<-data.frame(Column_1=c(1,2,3),
Column_2=c(4,5,6),
Column_3=c(7,8,9))
write.csv(testdataframe_1, file="testdataframe_1.csv")
testdataframe_2<-data.frame(Column_1=c(1,2,3),
Column_4=c(10,11,12),
Column_5=c(13,14,15))
write.csv(testdataframe_2, file="testdataframe_2.csv")
testdataframe_3<-data.frame(Column_6=c(16,17,18),
Column_7=c(19,20,21),
Column_4=c(10,11,12))
write.csv(testdataframe_3, file="testdataframe_3.csv")
testdataframe_4<-data.frame(Column_9=c(22,23,24),
Column_10=c(25,26,27),
Column_6=c(16,17,18))
write.csv(testdataframe_4, file="testdataframe_4.csv")
如您所見,Column_1 出現在 testdataframe_1 和 testdataframe_2 中,但沒有出現在其余的其他資料框中。但是,testdataframe_2 和 testdataframe_3 有 Column_4 的共同點,而 testdataframe_3 和 testdataframe_4 有 Column_6 的共同點。
有沒有辦法將這些 CSV 檔案讀入 R 并根據上述方式將它們合并到公共變數上,特別是以自動化方式?
非常感謝!
uj5u.com熱心網友回復:
您可以使用 讀取所有檔案,lapply然后將它們與Reduce.
paste0("testdataframe_", 1:4, ".csv") |>
lapply(read.csv) |>
Reduce(merge, x=_)
請注意,這使用 R 4.2 中的|> _語法,但如果您喜歡
Reduce(merge, lapply(paste0("testdataframe_", 1:4, ".csv"), read.csv))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/494579.html
