读取R中子目录中具有相同名称的csv文件

时间:2015-11-25 09:50:30

标签: r csv merge concatenation subdirectory

我有两个名为facebookdata1和facebookdata2的文件夹。这些文件夹包含CSV文件,这些文件具有完全相同的名称(“活动”,“用户”等),并且它们的数量相同。

我必须将2个不同文件夹中同名的csv文件读入并合并(rbind ...)到R中。

我知道我可以通过以下方式读取一个文件夹中的所有csv文件:

temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))

2 个答案:

答案 0 :(得分:1)

以下应该做的工作:

directories <- c("path/to/facebookdata1", "path/to/facebookdata2")
files <- lapply(directories, list.files, pattern="*.csv", full.names = TRUE)
files <- lapply(files, sort)
dat <- Map(function(x,y) { rbind(read.csv(x), read.csv(y)) },
    files[[1]], files[[2]])

现在它们是dat的列表元素。 如果你想将它们分配给globalenv使用

list2env(dat)

您可以使用data.table按如下方式加快处理速度:

require(data.table)
dat <- Map(function(x,y) { rbindlist(fread(x), fread(y)) },
        files[[1]], files[[2]])

答案 1 :(得分:0)

你只是缺乏一个rbind!我删除了“.csv”,稍微整理了你的变量名。

    Dim Ctrl As Control

    For Each Ctrl In Frame2.Controls
         Ctrl.Enabled = False ' Disable the controls
    Next

    For Each Ctrl In Frame2.Controls
         Ctrl.Enabled = True ' Enable the controls
    Next