首页 > 解决方案 > 尽管在常规 R 脚本中工作,但命令无法在 RMarkdown 中运行

问题描述

我有这个命令,当我从 R 脚本运行它时它工作正常

df <- data.table::rbindlist(lapply(Sys.glob("myfolder/part-*.parquet"), arrow::read_parquet)) %>% 
  as_tibble() %>% 
  mutate(mycol = as.character(mycol))

但是,当我从 RMarkdown 段落运行相同的命令时,我得到了这个错误

Error: Problem with `mutate()` input `mycol`.
x object 'mycol' not found
ℹ Input `mycol` is `as.character(mycol)`.

然后当我在没有最后一行的情况下运行命令时,我得到一个空数据框。

我在最新的 r 工作室,在 Mac 上拥有最新的 R。

标签: rr-markdown

解决方案


Markdown 文档的默认搜索路径是文档所在的文件夹。
这可能与 RStudio 会话使用的工作目录不同。
验证 .Rmd 文件是否位于getwd()文件夹中。

为了避免路径问题,RStudio 下一个非常有效的解决方案是:

  1. 使用项目而不是独立文件
  2. 使用here允许您根据项目根目录引用文件的包,另请参见此处包的颂歌

推荐阅读