通过引用从函数内分配环境对象的属性

问题描述 投票:2回答:1

这是一个简化的例子:

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以通过引用分配新属性?

r attributes assign
1个回答
1
投票

来自assign_new_attrib()

如果要通过引用更改属性,请参阅comments by nicola中的setattr函数。尝试:

data.table
© www.soinside.com 2019 - 2024. All rights reserved.