21

我正在尝试将 R 中的数据导出到 csv 文件,尽管我尝试这样做很简单,但我总是收到相同的错误消息。例子:

我创建了一个简单的数据向量来导出

 x <- c(1,3,4,3,5,7,5,8,2,5,7)

我尝试使用以下方式导出:

write.csv(x,file='whatever.csv')

我得到一个错误:

error in file(file ifelse (append a w )) cannot open the connection
In addition: Warning message: In file(file, ifelse(append, "a", "w")) :
cannot open  file 'whatever.csv': Permission denied

我该如何解决这个问题?

4

10 回答 10

24

第一部分是检查工作目录并确保您对该目录具有写入权限。您可以使用getwd(). 我可以通过尝试写入只读目录来重现您的错误。

要将工作目录设置为具有读取权限的其他内容,您可以键入setwd("H:/foo"). 一旦你有写访问权限,write.csv(x,file='whatever.csv')应该可以工作。

于 2013-07-22T02:24:02.190 回答
3

我今天遇到了同样的问题,我知道我拥有该文件夹的完全权限。对我有用的是给它绝对路径。

write.csv(data, file="C:/project/file.csv")

于 2019-03-14T21:54:29.450 回答
0

如果您之前已导出文件(没问题),现在出现错误,请确保该文件未打开。就我而言,当我第二次尝试导出时出现错误,我意识到第一个文件已打开。您可以更改要导出的文件的名称或关闭打开的文件。

于 2020-08-08T01:59:42.273 回答
0

如果您不指定文件名(即 C:/temp.csv)而只提供文件路径,则 write.csv 和 write_csv 都会弹出同样的错误。

于 2019-01-10T21:19:28.973 回答
0

相关:我试图将 csv 保存到相对路径,我在 Windows 中逐步构建,但在我的情况下,问题并不是真正的错误,而是我的误解 - 在以下代码中:

library(dplyr)
library(hflights)

path_to_hflights_as_csv <- 
  file.path(path.expand("~/MyHomeSubDir"),
            "hflights.csv")

write.csv(hflights, path_to_hflights_as_csv)

path.expand("~/MyHomeSubDir")映射到"C:/Users/my.username/Documents/MyHomeSubDir"而不是"C:/Users/my.username/MyHomeSubDir".

在安装 R 时搜索是否是一些错误的配置,我发现各种 Windows 版本中的“主目录”确实是"C:/Users/my.username/Documents/"(而不是"C:/Users/my.username"):

并且当您传递包含不存在的子目录的路径时utils::csv.write,错误是相似的(只有不打开文件的原因不同- cannot open file 'C:/Users/my.username/MyHomeSubDir/hflights.csv': No such file or directory)。

于 2020-07-12T01:02:47.173 回答
0

我今天收到了这个错误,并通过授予每个人对该文件夹的写权限来修复它。

步骤:在PC上找到文件夹,右键单击并选择属性,查找“安全”选项卡并编辑所有人的权限以包括“写入”

于 2018-04-02T21:18:51.507 回答
0

我今天收到此错误,因为我尝试重写的文件已在另一个程序中打开。我关闭后,问题就解决了。

于 2020-07-11T10:44:38.460 回答
-1

我只是偶然发现了这个问题,试图自己弄清楚。我有几次完全相同的错误消息弹出:

Error in file(file, ifelse(append, "a", "w")) : 
  cannot open the connection

在四处搜索并没有找到对我有用的东西后,我重新启动了 R 并收到了相同的消息,但也出现了一个新错误:

In addition: Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file 'censoredpath.file.csv': Permission denied

我去了我的文件资源管理器并尝试在 Excel 中打开 .csv,它通知我它已被另一个用户锁定(其他人在他们的计算机上打开了该文件)。因此,如果像已经建议的那样访问目录不是问题,请尝试在 Excel 中打开它,看看是否有问题。

于 2017-09-07T13:50:40.943 回答
-3

如果您的工作目录中已经有一个同名的文件,您会收到该错误。

于 2017-05-15T15:19:01.790 回答
-4

请检查您的代码是否包含任何变量名称、逻辑 T 或 F(TRUE 或 FALSE)。如果有,则不能将逻辑值缩短为 T 或 F。

于 2016-10-19T19:27:22.290 回答