首页 > 解决方案 > 在函数外部工作的进程在函数 R 内部不起作用

问题描述

我不明白为什么这个在函数外工作的过程在函数内不起作用

首先是一些数据:

add.variable.to.list <-  function () {
  data <- dplyr::lst(!! variableName :=  dplyr::lst(ICD10, ICD8, ATC))
  VariableDefinor <- append(VariableDefinor, data)
  return(VariableDefinor)
}

# Initiate variable super list
#smoking marker
  ICD10 <- paste("^", c("DF17", "DZ720", paste("DJ", seq(40,44,1), sep = ""), "D716"), sep ="")
  ICD8 <- c()
  ATC <- c("^R03", "^N07BA")
  variableName <- c("smokingMarker")
 
VariableDefinor <- dplyr::lst(!! variableName :=  dplyr::lst(ICD10, ICD8, ATC))

#obesity
  ICD10 <- paste("^D", c("E65", "E66", "E68", "E68"), sep = "")
  ICD8 = c() 
  ATC = c()
  variableName <- c("obesity")

 
VariableDefinor <- add.variable.to.list() 

我想在函数中添加什么:

unlist(flatten(VariableDefinor$obesity))

这输出:"^DE65" "^DE66" "^DE68" "^DE68"

我最好的功能版本,可以让我以一般方式执行此操作:

variable.selector <- function (variableList, variableName) {
  
unlist(flatten(variableList$variableName)) #combines sublists to single character vector

  }

variable.selector(variableList = VariableDefinor, variableName = "obesity")

如果您能指出我不明白的地方,我将不胜感激,下次我可以自己做!

标签: rfunction

解决方案


推荐阅读