如何更新/覆盖当前在 R 中导入的 csv 文件
Posted
技术标签:
【中文标题】如何更新/覆盖当前在 R 中导入的 csv 文件【英文标题】:How to update/overwrite a csv file currently imported in R 【发布时间】:2021-12-03 12:42:16 【问题描述】:我正在尝试使用 write_csv
覆盖 csv 文件。这工作正常,直到我尝试覆盖我事先在 R 中导入的文件。例如,运行
dummy_df <- read_csv("dummy_data.csv")
dummy_df_2 <- dummy_df %>%
mutate(ones = 1)
write_csv(dummy_df_2, "dummy_data.csv")
将返回此错误:
Error: Cannot open file for writing:
* 'D:\dummy_name_of_project_directory\dummy_data.csv'
(请注意,如果您在同一个 R 会话中创建 dummy_data.csv 文件,则不会遇到此错误。我必须关闭 Rstudio 并再次打开它才能遇到错误)。未打开 csv。
在尝试保存 dummy_df_2
之前从环境中删除 dummy_df
(使用 rm()
)并不能解决问题。
我认为我以前没有遇到过这个问题,所以我认为在 R 的最后一次更新期间发生了一些变化。我在 R 版本 4.1.1 和 Rstudio 版本 1.4.1717 上运行。
你知道如何规避这个错误吗?
谢谢!
【问题讨论】:
运行getwd()
... 你会得到什么?也许你需要先setwd()
CSV 是否打开?
@Sotos,wd 是正确的。我收到的错误消息指定了正确的 wd。为了清楚起见,我在写我的问题时将其替换为“D.\wd\”。我将更改公式以使其更清晰。
您是否有权更改该文件?也许尝试以管理员身份运行 R
如果以管理员身份运行 R,这很有见地,但是您确实需要找到一个不涉及在超级用户上下文中运行的更好的解决方案:更改文件的所有权/权限。 (我建议在以管理员身份运行 R 之前这样做。)
【参考方案1】:
尝试并更新 readr(朝向 2.1)。我遇到了同样的问题,我认为错误消息现在已经停止 - 我无法得到一个可以 100% 确定的具体可重现示例。
我认为问题与 readr 2.0 中的懒惰阅读有关:https://www.tidyverse.org/blog/2021/11/readr-2-1-0-lazy/
【讨论】:
它也对我有用。非常感谢!以上是关于如何更新/覆盖当前在 R 中导入的 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章