【发布时间】:2017-07-06 23:31:24
【问题描述】:
我正在尝试将 R 中文件夹中的所有 SPSS 文件读取到不同的 data.frames。我只需要那个,所有这些文件都读入 R 数据帧。
我相信我需要一个 for 循环,或者可能需要一些 lapply 或 sapply 的解决方案。我尝试了很多使用循环或 lapply 的选项,但我得到的最好的方法是创建所有数据。
到目前为止,我得到的最好的结果是使用以下代码(改编自打开多个 CSV 文件的解决方案):
library(foreign)
filenames <- list.files()
filelist <- lapply(filenames, read.spss, to.data.frame = TRUE)
names(filelist) <- c("nic", "hon", "chi", "cr", "repdom", "ecu", "col",
"sal", "par", "mex", "arg", "gua", "pan", "uru", "bra")
invisible(lapply(names(filelist), function(x)
assign(x,filelist[[x]],envir=.GlobalEnv)))
使用此代码,我读取了所有文件,但作为列表,而不是作为 data.frames。我不知道我可以在哪里放置“as.data.frame”或类似的东西来获得我想要的东西。
也许一个解决方案是循环访问文件夹中的所有文件,以便列表中的第一个元素(第一个文件)被读取为 df.1,然后是 df.2,等等。它没有不管数据帧的名称是什么,我只需要一个简单的代码就可以将它们全部读入数据帧。
【问题讨论】:
标签: r