如果我遵守将文件路径另存为带有通用前缀“ file_”的变量的约定,那么看来我可以为read_rds()
创建一个包装函数,该函数将根据“ file_”中的文件名。
当我评估读取文件的名称时遇到麻烦。
library(here)
library(readr)
library(stringr)
file_survey <- here("my_survey_2019.rds")
my_read_rds <- function(file){
name <- deparse(substitute(file))
name <- stringr::str_remove(name, "^file_")
eval(name) <- readr::read_rds(file) # Does not work
}
my_read_rds(file_survey) # would ideally create a dataframe named `survey`
答案 0 :(得分:1)
您可以使用assign
。
my_read_rds <- function(file){
name <- deparse(substitute(file))
name <- stringr::str_remove(name, "^file_")
assign(name, readr::read_rds(file), envir=globalenv())
}