3

我需要这样的功能:

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

例如:note(xxx,"yyyy")

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

4

2 回答 2

4

您可以使函数返回对象本身,因此可以重新分配它:

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

xxx <- note(xxx, "yyyy")
于 2012-09-03T11:53:51.223 回答
0

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

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

谢谢大家

于 2012-09-04T13:38:20.150 回答