( NB:在标题中,在这篇文章中,我使用形容词"标准"来描述预先存在的函数(而不是在...上创建的函数) -fly在运行时)并且默认情况下在vanilla R
会话中可用,无需加载其他包或使用包限定名称。我确信有更好的方法来引用这些函数请让我知道它是什么。)
经常会出现"典型的"设置项目属性的方法(至少在创建之后)是通过赋值。例如。在names
属性的情况下,这将如下所示:
lo4 <- function.returning.list.of.four.items(blah, blah, blah)
names(lo4) <- c('eeny', 'meeny', 'miny', 'moe')
(我会将这些属性称为&#34;赋值可设置&#34; 1 。)
或者,可以使用通过将<-
附加到属性名称(并引用整个内容)获得的函数,即时设置属性的值; e.g:
lo4 <- `names<-`(function.returning.list.of.four.items(blah, blah, blah),
c('eeny', 'meeny', 'miny', 'moe'))
(为了这个问题,我将使用特殊术语计算[属性]设置器来处理上面的`names<-`
这样的函数。)
然而,事实证明,对于某些(并非所有!)属性,有标准的R
函数可以实时设置它们的值&#34;&#34; ;例如,names
属性,标准setNames
函数:
lo4 <- setNames(function.returning.list.of.four.items(blah, blah, blah),
c('eeny', 'meeny', 'miny', 'moe'))
(同样,为了这个问题,我将使用ad-hoc术语标准[attribute] setter 作为标准属性设置函数,例如setNames
。 )
setNames
的示例可能会鼓励人们希望,对于任何其他可分配的属性foo
,都会有标准属性设置器 setFoo
。不幸的是,情况似乎并非如此:
m2x2 <- setDim(function.returning.vector.of.four.ints(blah, blah, blah), c(2, 2))
Error: could not find function "setDim"
我的问题是:如果对于某些可分配的属性foo
存在标准属性setter ,是否有系统的方法来查找其名称?
天真地搜索foo
的文档是不够的。例如,setNames
的文档中根本没有提到names
。
1 来想一想,我无法想出R
中任何不可分配的属性,所以也许是&#34;分配可设置的&#34;描述符是多余的。