R语言中atomic类型args用$获取ID失效,如何正确取值?
问题解决
故障原因
commandArgs(T) 返回的是原子字符向量,R语言中$运算符仅支持列表、数据框这类递归型对象的字段提取,无法直接作用于原子向量,因此args$ID无法正常返回结果。
修复方案
你代码中已经将args转换为带指定列名的数据框df,直接从df中提取对应字段即可,仅需修改updateTextInput行的取值来源:
# 把原来的 value = args$ID 替换为 value = df$ID updateTextInput(session = session,inputId = "ID",value = df$ID)
其他可选取值方式
如果不想通过数据框取值,也可以用以下两种方式实现:
- 按位置直接取原子向量的对应元素:你传入的第一个参数为ID,直接写
args[1]即可取值 - 转为命名列表后用
$提取:
args <- commandArgs(T) # 给原子向量加命名 names(args) <- c('ID','Region','CreatedDate','Status','TaskStatus','Comment') # 转为列表 args_list <- as.list(args) # 之后可直接用$提取 updateTextInput(session = session,inputId = "ID",value = args_list$ID)
内容的提问来源于stack exchange,提问作者user16656588
相关产品推荐
相关产品推荐

