`names()` 或 `c()` 的 S3 方法
S3 method for `names()` or `c()`
是否可以为函数 c()
或 names()
创建一个 s3 方法?特别是对于名为 'foo' 的 S3 class,创建名为 names.foo
的函数和 c.foo
似乎对 S3 对象的串联 and/or 命名没有影响。
这个'works for me',例如
> names.foo = function(x) "names.foo"
> names(structure(list(), class="foo"))
[1] "names.foo"
还有
> `names<-.foo` = function(x, value) { attr(x, "names") = value; x }
> f = structure(list(1:3), class='foo')
> f = structure(list(1:3), class='foo')
> names(f) = "bill"
> f
$bill
[1] 1 2 3
attr(,"class")
[1] "foo"
setClass()
或 setOldCLass()
与 S4-land 相关,但与 S3 无关。
是否可以为函数 c()
或 names()
创建一个 s3 方法?特别是对于名为 'foo' 的 S3 class,创建名为 names.foo
的函数和 c.foo
似乎对 S3 对象的串联 and/or 命名没有影响。
这个'works for me',例如
> names.foo = function(x) "names.foo"
> names(structure(list(), class="foo"))
[1] "names.foo"
还有
> `names<-.foo` = function(x, value) { attr(x, "names") = value; x }
> f = structure(list(1:3), class='foo')
> f = structure(list(1:3), class='foo')
> names(f) = "bill"
> f
$bill
[1] 1 2 3
attr(,"class")
[1] "foo"
setClass()
或 setOldCLass()
与 S4-land 相关,但与 S3 无关。