在函数运行期间将参数值用作R中的变量名

在函数运行期间将参数值用作R中的变量名,r,namespaces,environment-variables,assign,R,Namespaces,Environment Variables,Assign,如何创建名称与传递给函数的参数的字符值相同的变量?以下几行行不通。我是否必须首先使用paste0()、parse()组合为表达式编写文本,然后最终使用eval()对其求值 这是常见问题7.21 答案中最重要的部分是它说不要这样做。全局变量是危险的,可能导致难以发现的错误 如果您需要存储一个变量,以便其他函数可以找到它(人们使用全局变量的常见原因),则可以更简洁地创建一个所有函数都可以引用的特殊环境: mynewenv <- new.env() fun1 <- function(na

如何创建名称与传递给函数的参数的字符值相同的变量?以下几行行不通。我是否必须首先使用paste0()、parse()组合为表达式编写文本,然后最终使用eval()对其求值

这是常见问题7.21

答案中最重要的部分是它说不要这样做。全局变量是危险的,可能导致难以发现的错误

如果您需要存储一个变量,以便其他函数可以找到它(人们使用全局变量的常见原因),则可以更简洁地创建一个所有函数都可以引用的特殊环境:

mynewenv <- new.env()

fun1 <- function(name) {
  mynewenv[[name]] <- "testing"
}

fun2 <- function(name) {
  print( mynewenv[[name]] )
}

mynewenv您可以使用assign,envir=.GlobalEnv

mynewenv <- new.env()

fun1 <- function(name) {
  mynewenv[[name]] <- "testing"
}

fun2 <- function(name) {
  print( mynewenv[[name]] )
}