我正在编写一个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,但我不知道何时/为什么会这样。
我的问题如下:在任何情况下我都应该担心摆脱&#39; list&#39;作为班级名称?我应该改用:
class(myData) <- c("datatype1", "list")
基本上我不知道,如果班级列表&#39;找不到但存储模式仍然是一个列表。我试过阅读文档并且没有看到这个特殊问题。如果有人可以向我指出相关信息,我很高兴阅读该手册。谢谢!
答案 0 :(得分:0)
通常,可以根据“list”类调度某些包中的某些函数。例如,基础R中的as.data.frame
或within
list1 <- list(a = 1)
class(list1) <- "nolist"
within(list1, a <- 4)
UseMethod(“within”)中的错误: 没有适用于'内部'的方法适用于“nolist”类的对象
对于“列表”依赖方法检查
methods(class = "list")