RStudio Knit报错object not found:已加载RDS文件仍无法识别
解决R Markdown Knit时RDS对象找不到的问题
统一Knit和交互环境的工作目录
Knit默认以R Markdown文档所在文件夹为工作目录,和你平时交互运行代码的目录可能不一样。可以在文档开头的代码块里添加:setwd(dirname(rstudioapi::getSourceEditorContext()$path))或者在RStudio的「工具→全局选项→R Markdown」中勾选「在包含文件的目录中运行代码块」,强制Knit使用文档所在目录。
在R Markdown里显式读取RDS文件
Knit是在全新的R会话中运行的,不会继承你当前交互环境里已加载的对象。必须把读取RDS的代码直接写在文档的代码块里,比如:my_data <- readRDS("my_data_file.rds")注意文件路径要准确,用相对路径时要对应文档所在目录。
检查文件名和路径的大小写
像Linux、macOS这类系统对文件名大小写敏感,交互运行时可能路径写对了,但Knit时如果大小写不一致,就会找不到文件。比如user_data.rds和User_Data.rds会被识别成两个不同文件。重启R会话后再Knit
有时候交互环境的对象缓存会干扰Knit,先点击RStudio菜单栏的「会话→重启R」,之后直接Knit文档,不要先在交互环境里运行代码,确保Knit用的是干净的会话。
内容的提问来源于stack exchange,提问作者Amanda Arbtin
相关产品推荐
相关产品推荐

