在R,Ubuntu 14.04 LTS,R版本3.2.4中的特定目录中打开txt文件时出现问题

时间:2016-05-10 18:21:31

标签: r

尝试通过read.table读取文件夹中的txt文件时出现了一个非常奇怪的问题。它识别文件的存在(我通过print方法调试)但它无法将文件读入表中。 有人知道出了什么问题吗? 我已经查看了其他相关主题,但我没有找到适合我问题的答案。 这是我的代码:

path1 = "/home/yoda/Desktop/thesis/TullyFisher/Galac.RC_Dwarfs/TFRCHI/bins_29_04/7bins_TF/datasets/TFR/"
out.file<-""
file.names1 <- dir(path1, pattern =".txt")
listofdfs<-list()
for(i in 1:length(file.names1))
{
     print(file.names1[i])
     file <- read.table(file.names1[i])
     df<-data.frame(as.numeric(file[[1]]),as.numeric(file[[2]]),as.numeric(file[[3]]),as.numeric(file[[4]]))
     listofdfs[[i]]<-df
     #write.table(listofdfs[[i]],file=paste0("outliers_",file.names1[i],quote=F,row.names = F, col.names = F))
}

它返回:

[1] "toplot1_normalTF.txt"
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'toplot1_normalTF.txt': No such file or directory

2 个答案:

答案 0 :(得分:2)

必须是文件路径。该目录不是工作目录,dir()仅返回文件名而不是完整路径。使用full.names参数应该可以解决这个问题。例如

dir("~/Desktop", full.names = T)

答案 1 :(得分:0)

错误是因为您尝试读取的文件不在当前目录中。 R总是尝试从当前目录中读取文件。

要了解您当前的目录,请尝试:

getwd()

它与path1不同。

由@R.S.S。请使用full.names。请尝试以下:

path1 = "/home/yoda/Desktop/thesis/TullyFisher/Galac.RC_Dwarfs/TFRCHI/bins_29_04/7bins_TF/datasets/TFR/"
out.file<-""
file.names1 <- dir(path1, pattern =".txt",full.names = T)