R语言 为什么在向文件写入数据时出现此错误

drnojrws  于 2023-01-18  发布在  其他
关注(0)|答案(6)|浏览(458)

我有这个密码

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

我得到了以下错误:
文件(文件,ifelse(append,"a","w"))中出错:无法打开连接另外:警告消息:在文件(文件,ifelse(追加,"a","w"))中:无法打开文件"C:/mypath/myfile.txt":无此文件或目录
我读了this tutorial,但是我不知道我的代码出了什么问题。你知道吗?

    • 编辑**:

正如@dickoa所指出的,我需要一个已存在的路径来写文件,所以我尝试以下面的方式进行简化:

file.exists("C:/")
write(myvector, "C:/myfile.txt")
  • 令人惊讶的是 *:P路径"C:/"存在(结果为TRUE),但我得到了类似的错误:

文件(文件,ifelse(append,"a","w"))中出错:无法打开连接另外:警告消息:在文件(文件,ifelse(追加,"a","w"))中:无法打开文件"C:/mypath/myfile.txt":权限被拒绝

cidc1ykv

cidc1ykv1#

我知道@dickoa在评论中回答了这个问题,但为了在这里提供至少一个答案,我想在Windows上用R经历几个简单的陷阱。
1.当你使用Windows的时候,你仍然需要用正斜杠来表示路径。在R中,反斜杠是用来转义值的。所以R中的路径看起来像这样:C:/path/to/my/directory
1.在较新版本的Windows中,C:\受到保护,用户帐户无法写入。如果要写入C:\,您必须是管理员。您可以通过右键单击Windows中的R图标并选择“以管理员身份运行”来完成此操作。在安装程序包时也应执行此操作。如果您不是以管理员身份运行,则可能无权在某些Windows版本上安装程序包。
1.如果您不想以管理员身份运行R,而想写入文件,则默认情况下您将拥有C:/Users/username/目录的权限。
所有的功劳都要归功于@dickoa,因为他在第一局做出了回答。
祝你好运!

j1dl9f46

j1dl9f462#

只是在补充答案。
我遇到这个错误的原因是,我试图保存的路径超过了256个字符,因此出现了错误。
一旦我减少了路径大小,问题就解决了。

7xllpg7q

7xllpg7q3#

我只是分享了这个答案,并给出了一个更好的解释here,但其要点是:
尝试在Excel中打开该文件,看看它是否被其他用户锁定。我收到了相同的错误消息,并能够找出一个同事在他们的计算机上打开了该文件,锁定了我的编辑能力。

ogsagwnx

ogsagwnx4#

有时问题出在文件的命名上。例如,我遇到过这个问题,当文件名中有“"时,因为有一个动态的名称列表。您可以使用以下内容来忽略这样的事情:查找文本= gsub(“/",”“,查找文本)。

8ulbf1ek

8ulbf1ek5#

当你打开myfile.txt并运行代码时会发生这种情况。试着在你的机器中关闭myfile.txt并运行命令。它解决了你的问题。

f0brbegy

f0brbegy6#

还有一种可能性,我在运行下面的代码时遇到过这个问题,因为我在启动RStudio之前已经成功运行了这个代码,所以这次重启RStudio后运行成功,所以有时候重启会解决问题,虽然我还没有弄清楚后面发生了什么。

DT::datatable(
  dt.cmbn,
  extensions = c('ColReorder','FixedColumns'), rownames = FALSE,
  options = list(
    colReorder = TRUE,
    #dom = 'Bfrtip', 
    #buttons = I('colvis'),
    scrollX = TRUE,
    fixedColumns = TRUE
    )
  )

相关问题