【问题标题】:R How to call '[.class<-' directlyR如何直接调用'[.class <-'
【发布时间】:2013-08-15 15:02:38
【问题描述】:

出于好奇,我如何直接在 R 中调用 '[.class' 函数?

我知道我能做到:

test <- c(2,4,6)
test[2]

但是可以直接指定类吗?如果是这样,怎么办?

'[.numeric<-'(test , 2)
'[.numeric'(test , 2)

我已经尝试过这些,但他们回来了

Error: could not find function "[.numeric"

【问题讨论】:

    标签: r


    【解决方案1】:

    [ 是一个internal generic,这意味着调度发生在C 中,而base types(如数字)在R 中没有S3 方法。这就是为什么没有[.numeric[&lt;-.numeric

    不清楚你到底想要什么,但对于你的例子,你可以这样做

    test <- 1:3
    `[`(test, 2)
    `[<-`(test, 2, 3)
    

    【讨论】:

    • 嗯,我明白了。通用函数将从对象的类中解析。这就是为什么这也有效的原因: dtTest
    • 小说明:所有类型的分派都发生在 C 中,但基类型的分派是直接在 C 中处理的,因此在 R 中没有为基类型类编写的方法。
    猜你喜欢
    • 2011-07-15
    • 2011-01-12
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2022-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    相关资源
    最近更新 更多