这是一个简化的例子:
e <- new.env()
e$var <- 'some.val'
attr(e$var, 'attrib') <- 'some.attrib'
attr(e$var, 'attrib')
#[1] "some.attrib"
assign_new_attrib <- function(obj) {
attr(obj, 'attrib') <<- 'some.new.attrib'
}
assign_new_attrib(e$var)
#Error in attr(obj, "attrib") <<- "some.new.attrib" :
# object 'obj' not found
attr(e$var, 'attrib')
#[1] "some.attrib"
我在环境var
有一个变量e
,它有一个属性attrib
。现在我有一个函数assign_new_attrib
,它接受一个对象并为它赋予一个新的属性attrib
。如您所见,由于<<-
无法从函数内部解析变量,上面的代码会导致错误“object'obj'未找到”。
如何定义函数qazxsw poi以通过引用分配新属性?