基于此问题Link data.frame and matrix(接受的答案),我尝试使用此命令将dim
添加到S3类:
dim.JoinedUp <- function(x)
{
print(paste(dim(x$data_frame), dim(x$matrix)))
}
此功能有效,但rownames
存在问题:
rownames.JoinedUp <- function(x)
{
print(rownames(x$data_frame))
}
当我输入dim
时,我得到了rownames(new_obj)
个结果。
答案 0 :(得分:1)
这是因为rownames
不是S3方法。请参阅rownames
:
function (x, do.NULL = TRUE, prefix = "row")
{
dn <- dimnames(x)
if (!is.null(dn[[1L]]))
dn[[1L]]
else {
nr <- NROW(x)
if (do.NULL)
NULL
else if (nr > 0L)
paste0(prefix, seq_len(nr))
else character()
}
}
<bytecode: 0x3d0f2b0>
<environment: namespace:base>
它会调用dimnames
,因此您必须为您的班级创建方法dimnames
。类似的东西:
dimnames.JoinedUp <- function(x) {
dimnames(x$data_frame)
}