如果对象名在变量中,如何设置对象的特定属性?

时间:2017-09-14 08:28:17

标签: r attributes

通常,您可以将对象的属性设置为

attributes(x) <- list(dummy = 123)

但我将变量名存储在一个字符向量中。以下代码引发错误:

var <- "x"
attributes(eval(as.name(var))) <- list(dummy = 123)
  

属性错误(eval(as.name(var)))&lt; - list(dummy = 123):     找不到功能“eval&lt; - ”

如果eval(as.name())不正确,有人会提出解决此问题的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用函数应用属性和assign函数来应用它们:

add_dummy <- function(obj, name, attribute){
  attr(obj, name) <- attribute
  return(obj)
}

assign(var, add_dummy(get(var), "attr_name", list(dummy = 123)))