文件中的错误(文件,“rt”):无法打开连接[重复]
Posted
技术标签:
【中文标题】文件中的错误(文件,“rt”):无法打开连接[重复]【英文标题】:Error in file(file, "rt") : cannot open the connection [duplicate] 【发布时间】:2015-02-12 12:03:45 【问题描述】:我是 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
【问题讨论】:
看起来你有 (??) 一个目录specdata
和文件 001.csv
等。那么正确的路径是 ./specdata/001.csv
,not ./specdata001.csv
.尝试在specdatapaths
行中将sep=""
更改为sep="/"
。
或者尝试 Degugging 101 策略,例如打印给抛出错误的函数的值。
感谢两位的回复。我能够修复打开的连接错误,但现在我收到“选择了未识别的列”错误。有什么建议?谢谢污染平均(“specdata”,“硫酸盐”,1:10)[.data.frame
(curr_file,,污染物)中的错误:选择了未定义的列6停止(“选择了未定义的列”)5 [.data.frame
(curr_file,,污染物)4 curr_file[, 污染物] 3 [.data.frame
(curr_file, !is.na(curr_file[, 污染物]), 污染物) 2 curr_file[!is.na(curr_file[, 污染物]), 污染物] 1 污染物平均值("specdata", “硫酸盐”,1:10)
您应该将其作为一个单独的问题提出。多行代码在 cmets 中几乎不可读。
欢迎这个问题,以帮助所有可能面临此问题的未来 r 用户。
【参考方案1】:
你需要把directory <- ("./specdata")
改成directory <- ("./specdata/")
相对于您当前的工作目录,您正在寻找文件 001.csv,它位于您的 specdata 目录中。
如果没有任何上下文,这个问题几乎是不可能回答的,因为您没有在此处向我们提供您的工作目录的结构。幸运的是,我已经在 Coursera 上学习过 R 编程,所以我已经完成了这个作业问题。
【讨论】:
一般的解决办法是在开头加上setwd("/absolute/path/of/directory/with/required/files/")。 我一直在更改工作目录,而我的工作文件的文件夹就在这个目录中。 Rstudio 仍然无法进入文件文件夹。所以是的,必须在用户/主文件夹之后输入全部内容。 (虽然这是在 Mac 中)。【参考方案2】:我猜你看到这个错误的原因是因为 RStudio 丢失了你的工作目录的路径。
(1) 进入会话...
(2) 设置工作目录...
(3) 选择目录...
--> 然后你可以看到弹出一个窗口。
--> 选择存储数据的文件夹。
这是无需任何代码即可更改工作目录的方式。 希望对您有所帮助。
【讨论】:
【参考方案3】:将您的工作目录设置为高一级/文件夹。例如,如果已经设置为:
setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera/specdata")
往回上一级设置为:
setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera")
换句话说,不要将“specdata”文件夹作为您的工作目录。
【讨论】:
【参考方案4】:我也花了很多时间试图了解我的代码出了什么问题...
如果你使用的是windows,这似乎很简单。
当您将文件命名为“blabla.txt”时,Windows 将其命名为“blabla.txt.txt”... 这与 .CSV 文件相同,因此如果您将其命名为“001.csv”,Windows 会创建一个名为“001.csv.csv”的文件
因此,当您创建 .csv 文件时,只需将其重命名为“001”并使用 read.table("/absolute/path/of/directory/with/required/001.csv")
在 R 中打开它
它对我有用。
【讨论】:
哇,这对我也有用.. 在 Windows 10 中,rstudio。谢谢! 轰隆隆!添加文件扩展名。谢谢【参考方案5】:关闭您的 R 工作室并以管理员身份再次运行它。这对我来说很神奇。希望它对你和任何经历过这个的人都有效。
【讨论】:
【参考方案6】:如果您在访问文件时遇到此类错误,可以使用file.exists("file_path/file_name")
函数进行更好的检查。如果文件存在且可访问,此函数将返回TRUE
,否则返回False
。
【讨论】:
作品:目录 【参考方案7】:如果在 Windows 上运行,请尝试以管理员身份运行 R 或 R Studio,以避免 Windows 操作系统文件系统限制。
【讨论】:
【参考方案8】:使用setwd()
切换到适当的目录。
仅使用文件名来访问工作目录中的任何文件。
使用"../<filename>"
导航上面的文件夹。
【讨论】:
【参考方案9】:遇到这个错误,发现我的 Windows 机器上的 RStudio 尝试使用 \
作为转义符号,所以不得不用 \\
替换它来处理它。
用你的路径尝试file.exists
函数,例如:
file.exists("D:\\R\\path_to_file.csv")
【讨论】:
【参考方案10】:文件错误(文件,“rt”):
我刚刚遇到了同样的错误,并通过使用 paste0 而不是 paste 删除地址中的空格来解决
filepath=paste0(directory,"/",filename[1],sep="")
【讨论】:
【参考方案11】:我收到了同样的错误消息,并以最简单的方式修复了它。我将我的 .csv 文件放入桌面上的文件夹中,在 RStudio 控制台旁边的窗口中打开桌面,然后在那里打开我的文件,并选中我的 .csv 文件旁边的框,然后我使用了“更多”此窗口顶部的下拉菜单将其设置为我的工作目录...对于像我这样的超级初学者来说可能是最简单的事情:)
【讨论】:
【参考方案12】:当您尝试在路径中直接使用 getwd() 的结果时,也会出现此错误。问题是末尾缺少“/”。试试下面的代码:
projectFolder <- paste(getwd(), "/", sep = '')
paste() 是在末尾连接正斜杠。
【讨论】:
【参考方案13】:我从朋友那里得到了我的 R 代码文件,但无法运行 read.csv 命令,但如果我将相同的命令 (read.csv) 复制到新的 R 脚本文件,它运行良好。
下面的命令没有在我朋友共享的 R 代码文件中运行,工作目录、文件名等都是正确的,因为如果我创建了一个新的 R 脚本文件并在命令下面运行,它就可以工作。
df <- read.csv("file.csv",header=TRUE,stringsAsFactors = FALSE,strip.white =
TRUE,sep = ',')
问题/解决方案: 我右键单击 R 代码文件并取消阻止文件并单击保存按钮,问题得到解决。 我您的 R 代码文件位于 windows 的 Downloads 文件夹中,然后移至其他文件夹。
【讨论】:
【参考方案14】:我遇到了同样的问题。我从文件名中删除了扩展名。例如我的文件名保存为 xyz。 .csv。我把它保存为 xyz。
【讨论】:
【参考方案15】:我在尝试导入 10,000 个文件时遇到了同样的错误。我尝试使用 Excel 打开单个文件,但 Excel 给了我一条错误消息:“文件路径太长”。
文件被埋在 6 个嵌套文件夹中,这本身就是一个问题。将所有文件移动到桌面文件夹即可解决问题,而无需更改任何代码。
【讨论】:
【参考方案16】:我遇到了一个基于线程中弹出的一些答案的解决方案。 (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=",")
【讨论】:
【参考方案17】:文件错误(文件,“rt”)
创建了一个 .r 文件并将其与 sample_10000.csv 文件一起保存在 Desktop 中。
一旦尝试阅读它
heisenberg <- read.csv(file="sample_100000.csv")
遇到了和你一样的错误
海森堡
我知道至少有两种方法可以解决这个问题,一种是使用绝对路径,另一种是更改工作目录。
绝对路径
我修正了它添加文件的绝对路径,更准确
heisenberg <- read.csv(file="C:/Users/tiago/Desktop/sample_100000.csv")
工作目录
出现此错误是因为 RStudio 定义了一个特定的工作目录,该目录不一定是 .r 文件所在的位置。
因此,要使用这种方法进行修复,我已转到会话 > 设置工作目录 > 选择目录 (CTRL + Shift + H) 并选择 .csv 文件所在的桌面。这样运行以下命令也有效
heisenberg <- read.csv(file="sample_100000.csv")
【讨论】:
以上是关于文件中的错误(文件,“rt”):无法打开连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在vs中运行C++程序出现错误无法打开包括文件“iostream.h”
obiee 12c 管理工具未启动错误:bi_metadata_rt.dll 文件丢失
我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]