rbind抛弃自定义S3类

时间:2018-03-01 10:18:29

标签: r

我创建了两个data.tables并为它们提供了一个自定义类。当我对它们执行rbind时,结果将不再继承自定义类。如何确保结果包含自定义类:

> mytable <- data.table(x = c(1,2), y = c(2,3))
> class(mytable) <- c("myclass", class(mytable))
> class(mytable)
[1] "myclass"    "data.table" "data.frame"
> result <- rbind(mytable, mytable)
> class(result)
[1] "data.table" "data.frame"

我真的希望得到结果:

> class(result)
[1] "myclass"    "data.table" "data.frame"

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以定义自己的S3方法来保持课程。

rbind.myclass <- function(...) {
    res <- rbind.data.frame(...)        
    class(res) <- c("myclass", class(res))
    res
}
result <- rbind(mytable, mytable)
class(result)