在函数内部使用attributes()

时间:2012-09-03 11:47:11

标签: r function attributes scope attr

我需要这样的功能:

note<-function(object,text=""){attributes(object)[4]<-text}  

例如:note(xxx,"yyyy")

我尝试将值"yyyy"设置为xxx对象的第四个属性(在全局环境中)。实际上,函数(如预期的那样)不起作用,因为它修改了中的值 功能环境 有什么建议吗?

2 个答案:

答案 0 :(得分:4)

您可以让函数返回对象本身,因此可以重新赋值:

note <- function(object, text = "") {
    attributes(object)[4] <- text
    return(object)
}

xxx <- note(xxx, "yyyy")

答案 1 :(得分:0)

这里的解决方案(发现尝试flodel建议):

note<-function(object,text=""){
 object2<-object
 attributes(object2)[4]<-text
 assign(deparse(substitute(object)),object2,envir=.GlobalEnv)
}

感谢所有