我有两个名为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]))
答案 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