[英]Include base type (e.g. list) as a class attribute?
我正在编写一个R包,它围绕分析存储在列表中的一些数据。 例如,
myData <- list(x = "x vector", y = "another vector",
z = "function(x,y)", meta = "info about this dataset")
字符值只是描述,因为这些值不相关。 我有一些以列表格式存储的不同类型的数据,但是有一些重叠所以我给每种类都有一个类属性,就像这样
class(myData) <- "datatype1"
现在我已经测试了这个,看到了类似的东西
length(myData) ; myData$x
仍然工作,我的印象是这是因为存储模式仍然是一个列表,我尝试过的操作是.Primitve或.Internal,但我不知道何时/为什么这样做。
我的问题如下:在任何情况下我都应该担心将'list'作为一个类名去掉? 我应该改用:
class(myData) <- c("datatype1", "list")
?
基本上我不知道/如果找不到类'list'但是存储模式仍然是列表时函数调度是否失败。 我试过阅读文档,但没有看到这个特殊问题。 如果有人可以向我指出相关信息,我很高兴阅读手册。 谢谢!
通常,可以基于“list”类来分派一些包中的一些功能。 例如as.data.frame
或在基数R within
。
list1 <- list(a = 1)
class(list1) <- "nolist"
within(list1, a <- 4)
UseMethod中的错误(“在...内”):没有适用于“内部”的方法应用于类“nolist”的对象
对于“列表”依赖方法检查
methods(class = "list")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.