无法将数据导出到R中的文件(写入.csv)

9nvpjoqh  于 2023-01-10  发布在  其他
关注(0)|答案(8)|浏览(144)

我尝试将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

我该如何解决这个问题?

e5nqia27

e5nqia271#

我今天遇到了同样的问题,我知道我对该文件夹有完全权限。对我有效的方法是给它绝对路径。
第一个月

py49o6xq

py49o6xq2#

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

zzoitvuj

zzoitvuj3#

我今天得到了这个错误,并通过授予每个人对文件夹的写权限来修复它。
步骤:在您的PC上找到该文件夹,右键单击并选择属性,查找“安全”选项卡并编辑所有权限,以包括“写入”

vbkedwbf

vbkedwbf4#

我今天得到这个错误是因为我试图重写的文件在另一个程序中打开了。在我关闭它之后,问题解决了。

bf1o4zei

bf1o4zei5#

相关:我试图将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")被Map到"C:/Users/my.username/Documents/MyHomeSubDir"而不是"C:/Users/my.username/MyHomeSubDir"
在安装R时搜索是否是一些错误的配置,我发现不同Windows版本中的“home dir”确实是"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)。

eoigrqb6

eoigrqb66#

我只是在自己想弄清楚的时候偶然发现了这个问题。我有几次弹出了完全相同的错误信息:

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中打开它,看看这是否可能是问题所在。

p5fdfcr1

p5fdfcr17#

尝试了上述所有方法,但仍然不起作用。唯一的方法是禁用防病毒,在这种情况下AVAST。

ss2ws0br

ss2ws0br8#

第一部分是检查工作目录并确保您对该目录具有写访问权限。您可以使用getwd()进行检查。我可以通过尝试写入只读目录来重现您的错误。
要将工作目录设置为其他具有读访问权限的目录,可以输入setwd("H:/foo")。一旦您具有写访问权限,write.csv(x,file='whatever.csv')就可以工作了。

相关问题