R中多个csv之间的公共数据

时间:2017-10-09 09:13:46

标签: r csv

我有10个csv文件,每个文件都有一个列数据(名称)条目。例如,文件1有400个名称条目,文件2有386个名称条目,文件3有700个名称条目,依此类推。 我想在所有10个csv文件中找到公共条目,并将它们写入新的csv文件。

如果有人可以发布解决方案,最好是在R。

,那就太好了

1 个答案:

答案 0 :(得分:1)

你可以这样做:

your_files           <- c(path1,path2,...)
your_tables          <- lapply(your_files,read.csv)
your_common_colnames <- Reduce(intersect,lapply(your_tables,colnames))
your_new_tables      <- lapply(your_tables,`[`,your_common_colnames)
your_output          <- do.call(rbind,your_new_tables)

示例:

mtcars1 <- mtcars[1:3,1:5]
#                mpg cyl disp  hp drat
# Mazda RX4     21.0   6  160 110 3.90
# Mazda RX4 Wag 21.0   6  160 110 3.90
# Datsun 710    22.8   4  108  93 3.85
mtcars2 <- mtcars[1:3,3:10]
#               disp  hp drat    wt  qsec vs am gear
# Mazda RX4      160 110 3.90 2.620 16.46  0  1    4
# Mazda RX4 Wag  160 110 3.90 2.875 17.02  0  1    4
# Datsun 710     108  93 3.85 2.320 18.61  1  1    4
your_tables          <- list(mtcars1,mtcars2)
your_common_colnames <- Reduce(intersect,lapply(your_tables,colnames))
your_new_tables      <- lapply(your_tables,`[`,your_common_colnames)
your_output          <- do.call(rbind,your_new_tables)
#                disp  hp drat
# Mazda RX4       160 110 3.90
# Mazda RX4 Wag   160 110 3.90
# Datsun 710      108  93 3.85
# Mazda RX41      160 110 3.90
# Mazda RX4 Wag1  160 110 3.90
# Datsun 7101     108  93 3.85