文件错误(文件,“rt”):无法打开连接

时间:2014-12-14 04:21:17

标签: r csv rt

我是R的新手,在广泛研究了这个错误后,我仍然无法找到解决方案。这是代码。我检查了我的工作目录,并确保文件在正确的目录中。欣赏它。感谢

pollutantmean <- function(directory, pollutant = "nitrate", id= 1:332)            
{                 if(grep("specdata",directory) ==1) 
            {
                    directory <- ("./specdata")
            }
            mean_polldata <- c()
            specdatafiles <- as.character(list.files(directory))
            specdatapaths <- paste(directory, specdatafiles, sep="")
                            for(i in id) 
                    {
                    curr_file <- read.csv(specdatapaths[i], header=T, sep=",")
                    head(curr_file)
                    pollutant
                    remove_na <- curr_file[!is.na(curr_file[, pollutant]), pollutant]
                    mean_polldata <- c(mean_polldata, remove_na)
                    }
            {
                    mean_results <- mean(mean_polldata)
                    return(round(mean_results, 3))
            }
} 

我得到的错误如下:

Error in file(file, "rt") : cannot open the connection

file(file, "rt")

read.table(file = file, header = header, sep = sep, quote = quote, 
    dec = dec, fill = fill, comment.char = comment.char, ...)

read.csv(specdatapaths[i], header = T, sep = ",")

pollutantmean3("specdata", "sulfate", 1:10)

In addition: Warning message:
In file(file, "rt") :
  cannot open file './specdata001.csv': No such file or directory

17 个答案:

答案 0 :(得分:14)

您需要将directory <- ("./specdata")更改为directory <- ("./specdata/")

相对于您当前的工作目录,您正在查找文件001.csv,它位于您的specdata目录中。

这个问题几乎不可能在没有任何背景的情况下回答,因为你没有在这里提供你工作目录的结构。幸运的是,我已经在Coursera上进行了R编程,所以我已经完成了这个功课问题。

答案 1 :(得分:9)

将工作目录设置为更高级别/文件夹。例如,如果它已设置为:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera/specdata")

返回一级并将其设置为:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera")

换句话说,不要将“specdata”文件夹作为工作目录。

答案 2 :(得分:7)

我花了很多时间试图理解代码中的错误......

如果您使用的是Windows,这似乎很简单。

当您为文件命名时#34; blabla.txt&#34;然后windows命名为&#34; blabla.txt.txt&#34; ... 这与.CSV文件相同,因此Windows创建一个名为&#34; 001.csv.csv&#34;的文件。如果你打电话给它&#34; 001.csv&#34;

因此,当您创建.csv文件时,只需将其重命名为&#34; 001&#34;并使用read.table("/absolute/path/of/directory/with/required/001.csv")

在R中打开它

它对我有用。

答案 3 :(得分:3)

我猜你看到这个错误的原因是因为RStudio丢失了工作目录的路径。

(1)参加会议......

(2)设置工作目录......

(3)选择目录...

- &GT;然后你会看到一个窗口弹出。

- &GT;选择存储数据的文件夹。

这是没有任何代码更改工作目录的方式。 希望这可以帮到你。

enter image description here

答案 4 :(得分:1)

如果在Windows上运行,请尝试以管理员身份运行R或R Studio,以避免Windows操作系统文件系统限制。

答案 5 :(得分:1)

文件(文件,“ rt”)中的错误:

我只是遇到了同样的错误,并通过使用paste0而不是paste删除地址中的空格来解决

filepath=paste0(directory,"/",filename[1],sep="")

答案 6 :(得分:1)

如果在访问文件时遇到此类错误,可以使用(?!00000)[0-9]{5} 函数进行更好的检查。如果文件存在且可访问,此函数将返回file.exists("file_path/file_name"),否则返回TRUE

答案 7 :(得分:1)

关闭您的R工作室并以管理员身份再次运行它。这对我来说真的很神奇。希望它对你和任何经历过这个的人都有用。

答案 8 :(得分:1)

使用setwd()更改为相应的目录。 仅使用filename访问工作目录中的任何文件。 使用"../<filename>"导航上面的文件夹。

答案 9 :(得分:0)

我收到了同样的错误消息并以最简单的方式修复了它。我将.csv文件放入桌面上的文件夹中,在RStudio上的控制台旁边的窗口中打开桌面,然后在那里打开我的文件,并选中我的.csv文件旁边的框,然后我使用&#34 ;更&#34;在此窗口顶部的下拉菜单中将此设置为我的工作目录...对于像我这样的超级初学者来说可能是最简单的事情:)

答案 10 :(得分:0)

当您尝试直接在路径中使用getwd()的结果时,也会发生此错误。问题是末尾缺少“ /”。尝试以下代码:

projectFolder <- paste(getwd(), "/", sep = '')

paste()用于在末尾连接正斜杠。

答案 11 :(得分:0)

我从朋友那里获得了R代码文件,但无法运行read.csv命令,但是如果我将同一命令(read.csv)复制到新的R脚本文件中,则可以正常运行。

下面的命令未在我的朋友共享的R代码文件中运行,工作目录,文件名等均正确,因为如果我创建了一个新的R脚本文件并在命令下运行,它将起作用。

           df <- read.csv("file.csv",header=TRUE,stringsAsFactors = FALSE,strip.white = 
           TRUE,sep = ',')

问题/解决方案: 我右键单击R代码文件并取消阻止该文件,然后单击“保存”按钮,问题已解决。 我的R代码文件位于Windows的“下载”文件夹中,然后移至其他文件夹。

enter image description here

答案 12 :(得分:0)

我遇到了同样的问题。我从文件名中删除了扩展名。例如,我的文件名另存为xyz。 CSV我将其保存为xyz。

答案 13 :(得分:0)

得到此错误后,发现我的Windows计算机上的RStudio尝试使用\作为转义符号,因此必须用\\替换它以进行处理。

尝试使用file.exists函数和路径,例如:

file.exists("D:\\R\\path_to_file.csv")

答案 14 :(得分:0)

文件(文件“ rt”)中的错误

创建一个.r文件,并将它与sample_10000.csv文件一起保存在桌面中。

一旦尝试阅读

heisenberg <- read.csv(file="sample_100000.csv")

遇到与您相同的错误

  

heisenberg <-read.csv(file =“ sample_10000”)   file(file,“ rt”)中的错误:无法打开连接另外:警告消息:   在file(文件,“ rt”)中:无法打开文件“ sample_10000”:没有此类文件或   目录


我知道至少有两种方法可以解决此问题,一种方法是使用绝对路径,另一种方法是更改​​工作目录。

绝对路径

我更正了它,将它的绝对路径添加到了文件中

heisenberg <- read.csv(file="C:/Users/tiago/Desktop/sample_100000.csv")

工作目录

出现此错误是因为RStudio定义了一个特定的工作目录,该目录不一定是.r文件所在的位置。

因此,要使用此方法进行修复,我进入了“会话”>“设置工作目录”>“选择目录”(CTRL + Shift + H),然后选择了.csv文件所在的桌面。这样,运行以下命令也可以

heisenberg <- read.csv(file="sample_100000.csv")

答案 15 :(得分:0)

尝试导入10,000个文件时出现相同的错误。我尝试使用Excel打开单个文件,而Excel给我一个错误消息:“文件路径太长”。

文件被埋在6个嵌套文件夹中,这本身就是一个问题。将所有文件移动到桌面文件夹即可解决此问题,而无需更改任何代码。

答案 16 :(得分:0)

我遇到了一个基于线程中弹出的几个答案的解决方案。 (Windows 10)

setwd("D:/path to folder where the files are")
directory <- getwd()
myfile<- "a_file_in_the_folder.txt"
filepath=paste0(directory,"/",myfile[1],sep="")
table <- read.table(table, sep = "\t", header=T, row.names = 1, dec=",")