我是R的新手并且有这个非常基本的疑问:我们可以有任何其他方法来创建一个对象,它是多个对象的集合,例如矩阵,数据框和向量?据我所知,它只能使用列表对象来完成。
说我有矩阵x,
x <- matrix(1:12,nrow=4)
y <- data.frame(x)
z <- c("a", "b", "c")
生成列表my_list,
my_list <- list(x, y, z)
但如果还有其他方式,我想知道。
答案 0 :(得分:5)
以下是其他一些返回数据的方法
列表(完整性)
group1 = list(x, y, z)
<强>环境强>
group2 = new.env()
group2$x = x
group2$y = y
group2$z = z
ls(envir=group2)
S4对象
setClass("group3",
representation(
x = "matrix",
y = "data.frame",
z = "character"
)
)
s4 = new("group3", x=x, y=y, z=z)
参考对象
group4 = setRefClass("group4",
fields = list(x = "matrix",
y = "data.frame",
z = "character"))
group4$new(x=x, y=y, z=z)
功能关闭
group5 = function(x, y, z) function() return(list(x, y, z))
g5 = group5(x, y, y)
g5()
最后一个例子(函数闭包)试图强调有很多方法可以返回你的数据,但你应该仔细考虑你想要对返回的对象做什么。例如,使用S4对象返回示例数据集是过度的。但是,bioconductor使用S4对象(与环境相结合)将来自微阵列实验的复杂数据集合在一起。