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

时间:2013-06-17 20:40:37

标签: r file

我有这段代码

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':权限被拒绝

5 个答案:

答案 0 :(得分: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/目录的权限。
  4. 首先归功于@dickoa的回答。

    祝你好运!

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我刚才用一点更好的解释here分享了这个答案,但其主旨是:

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

答案 3 :(得分:0)

只需在此处添加答案即可。

我遇到此错误的原因是,我试图保存的路径超出了256个字符,因此出现了错误。

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

答案 4 :(得分:0)

当您打开myfile.txt并运行代码时,就会发生这种情况。尝试关闭计算机中的myfile.txt并运行命令。它可以解决您的问题。