为什么我将数据写入文件时出错

问题描述 投票:8回答:4

我有这个代码

myvector <- c(3.45235, 1.32525, ... , 2.41351)    # some numbers
write(myvector, "C:/mypath/myfile.txt")           # I use "/" instead of "\"

我收到以下错误:

文件错误(文件,ifelse(追加,“a”,“w”)):无法打开连接另外:警告消息:在文件中(文件,ifelse(追加,“a”,“w”)):不能打开文件'C:/mathath/myfile.txt':没有这样的文件或目录

我读了this tutorial,但我无法理解我的代码有什么问题。任何的想法?

编辑:

正如@dickoa所指出的,我需要一个现有的路径来写一个文件,所以我试着用以下方式简化:

file.exists("C:/")
write(myvector, "C:/myfile.txt")

令人惊讶的是:P路径“C:/”存在(结果为TRUE)但我收到类似的错误:

文件错误(文件,ifelse(追加,“a”,“w”)):无法打开连接另外:警告消息:在文件中(文件,ifelse(追加,“a”,“w”)):不能打开文件'C:/mathath/myfile.txt':权限被拒绝

r file
4个回答
17
投票

我知道@dickoa在评论中回答了这个问题,但为了在这里提供至少一个答案,我想在Windows上通过R进行一些简单的解决。

  1. 使用Windows时,仍然必须使用正斜杠作为路径。在R中,反斜杠保留用于转义值。所以R中的路径看起来像:C:/path/to/my/directory
  2. 在较新的Windows变体中,C:\受到用户帐户的写入保护。如果要写入C:\,则必须是管理员。您可以通过右键单击Windows中的R图标并选择“以管理员身份运行”来完成此操作。这也应该在您安装软件包时完成。如果您不以管理员身份运行它,则可能无权在某些Windows版本上安装软件包。
  3. 如果您不想以管理员身份运行R,并且想要写入文件,则默认情况下您将拥有C:/Users/username/目录的权限。

所有这些都归功于@dickoa,他的回答是第一次。

祝你好运!


1
投票

有时问题在于文件的命名。例如,我在文件名中遇到此问题时出现“\”,因为有一个带有名称的动态列表。你可以通过使用类似的东西来传递这样的东西:sometext = gsub(“/”,“”,sometext)。


0
投票

我只是用here的一个更好的解释分享了这个答案,但它的要点是:

尝试在Excel中打开文件以查看它是否被其他用户锁定。我收到了相同的错误消息,并且能够发现一位同事在他们的计算机上打开了文件,这使我无法编辑它。


0
投票

只是在这里添加答案。

我面临这个错误的原因是,我试图保存的路径超过256个字符,因此错误。

一旦我减小了路径大小,问题就被排序了。

© www.soinside.com 2019 - 2024. All rights reserved.