如何将xlsx文件中存储的变量作为代码运行的输入参数调用
解决方法
你只需要把读取到的带命名的参数转成列表后导入全局工作环境即可,不需要手动逐个赋值。
方案1:直接从Excel读取后批量生成变量
假设你的parameter.xlsx的date工作表结构为:第一列存参数名(start_dt/end_dt等),第二列存对应参数值
library(readxl) # 读取参数表为数据框 param_df <- read_excel("D:/Model/parameter.xlsx", sheet = "date") # 转换为命名列表,名称对应参数名,值对应参数值 param_list <- setNames(as.list(param_df[[2]]), param_df[[1]]) # 批量导入全局环境,之后可直接调用start_dt、end_dt等变量 list2env(param_list, envir = .GlobalEnv)
方案2:基于你现有代码的修改
如果你已经通过as_vector()得到了带命名的参数向量,直接转列表后导入环境即可:
library(readxl) library(dplyr) param_date <- read_excel("D:/Model/parameter.xlsx",sheet="date") %>% as_vector() # 新增这一行即可完成变量拆分 list2env(as.list(param_date), envir = .GlobalEnv)
注意:如果不同参数的数据类型不同(字符、数值、日期等),可在read_excel中通过col_types参数指定各列类型,避免读入后类型不符合预期
内容的提问来源于stack exchange,提问作者Anshari
相关产品推荐
相关产品推荐

