我无法为我的函数创建S3打印方法。
在函数中我有两个变量,一个返回一个数字,另一个返回一个包含多行和多列的数据框。
在我的功能中,我有以下内容:
rate = A/B
kout = list(rate, C)
class(kout) = 'kfoldOut'
return(kout)
上面的A和B中的是数字,C是具有2行和50列的data.frame。然后我按如下方式创建我的打印方法。
print.kfoldOut = function(x) {
cat("Rate:", x$rate)
print(x$C)
}
当我运行我的功能时,例如
z = func(x,y)
然后
print(z)
我得到Rate: NULL
我可以直接在我的函数中返回Rate
和C
,一切看起来都不错,但无法使print方法正常工作。
编辑:dput(z)
的输出,请注意我已删除了值以便于查看。
structure(list(0.312169312169312, structure(list(C = c(0,
0), X1 = c(1, 0), X2 = c(1, 0), .... X18.9 = c(1, 0), X19.8 = c(0, 0)), .Names = c("C",
"X1", "X2", "X3", .... "X19.8"), row.names = c("trueV", "testing_rd2"
), class = "data.frame")), class = "kfoldOut")