我是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
答案 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")
它对我有用。
答案 3 :(得分:3)
我猜你看到这个错误的原因是因为RStudio丢失了工作目录的路径。
(1)参加会议......
(2)设置工作目录......
(3)选择目录...
- &GT;然后你会看到一个窗口弹出。
- &GT;选择存储数据的文件夹。
这是没有任何代码更改工作目录的方式。 希望这可以帮到你。
答案 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的“下载”文件夹中,然后移至其他文件夹。
答案 12 :(得分:0)
我遇到了同样的问题。我从文件名中删除了扩展名。例如,我的文件名另存为xyz。 CSV我将其保存为xyz。
答案 13 :(得分:0)
得到此错误后,发现我的Windows计算机上的RStudio尝试使用\
作为转义符号,因此必须用\\
替换它以进行处理。
尝试使用file.exists
函数和路径,例如:
file.exists("D:\\R\\path_to_file.csv")
答案 14 :(得分:0)
创建一个.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=",")