从工作目录中打开文件
问题描述:
我遇到以下问题。我已将多个csv文件导入到我的工作目录中。希望有任何帮助从工作目录中打开文件
files
[1] "sept2010.csv__001.csv" "sept2010.csv__002.csv" "sept2010.csv__003.csv" "sept2010.csv__004.csv""sept2010.csv__005.csv" "sept2010.csv__006.csv"
在这里,我有超过200个csv文件。如果我魔杖打开文件我可以
data<-rbind(sept2010.csv__001.csv,sept2010.csv__002.csv) # It is time consuming to rbing 200 files.
做时,我尝试用打开文件:
myfiles = do.call(rbind, lapply(files, function(x) read.csv(x, stringsAsFactors = FALSE)))
我得到一个错误信息:
Error in file(file, "rt") : cannot open the connection
当我请尝试以下操作:
data<-do.call("rbind", lapply(files, read.csv, header = TRUE))
我ge t是相同的错误消息
如果我尝试用手动打开文件:
folder <- "C:/Users/NewPap/Desktop/DATA/test"
file_list <- list.files(path=folder, pattern="*.csv")
for (i in 1:length(file_list)){
assign(file_list[i],
read.csv((paste(folder, file_list[i], sep='')))
)}
我得到同样的错误
我不知道我做了什么错。希望得到任何帮助
答
如果您的所有文件都在你的工作目录,然后
lapply(grep(".csv",list.files(full.names=T),value="TRUE"),read.csv)
应打开所有在列表中的CSV文件(每个文件的内容将出现在列表中的一个元素)。
如果所有CSV文件具有相同的列数,然后
do.call("rbind",lapply(grep("csv",list.files(full.names=T),value="TRUE"),read.csv))
将产生所有CVS文件的单个数据帧。
答
有没有足够的让我们来帮助你。但是,如果您使用'list.files(“path /”)'来查找不同目录中的文件,我偶尔会忘记添加'list.files(...,full.names = TRUE)'来获取包含的路径与文件名。 – r2evans
我认为问题出在公司电脑和管理权限上。这就是无法打开连接的原因。 – kelamahim
好的...所以你可以手动打开文件吗?如果操作系统拒绝你访问,R就没有办法做到这一点。 – r2evans