将直方图类对象附加到R中的列表元素

时间:2015-08-20 13:26:12

标签: r list class histogram

我的标题问题与SOF中的很多问题非常相似,尽管我的问题非常不同: 我有一个列表MY_LIST

MY_LIST=list("a","b","c")

我有一个直方图类对象HIST_OBJECT

HIST_OBJECT=hist(rnorm(n=500, m=1, sd=1))
class(HIST_OBJECT)
[1] "histogram"

我想将HIST_OBJECT加载到列表MY_LIST的第一个插槽中。所以我执行:

MY_LIST[[1]][2]=list(HIST_OBJECT)

到目前为止一直很好,但问题是我HIST_OBJECT的班级发生了变化。这是一个直方图类,我可以绘制(plot(HIST_OBJECT)有效!)但现在它是一个列表类,我不能再绘制(plot(MY_LIST[[1]][2])不工作了)

class(MY_LIST[[1]][2])
[1] "list"

是否有人知道怎样做以使MY_LIST[[1]][2]对象成为"直方图"类对象?非常感谢提前!!

1 个答案:

答案 0 :(得分:1)

你很亲密:

class(MY_LIST[[1]][[2]])

想象一个像列车一样的列表:单个[获取您想要的所有内容,双[[只获取该列车的内容。另请注意为什么MY_LIST[[1]][2]=HIST_OBJECT不起作用,但MY_LIST[[1]][[2]]=HIST_OBJECT会起作用。

在这种情况下,[2]使您获得与其容器相同的类 - 一个包含第二个元素的列表,您的hist。 [[2]]将获取第二个容器中的元素,在本例中为hist。

另一个例子:

df <- data.frame(x=c(1,2,3), y=c(4,5,6))
class(df[1])
class(df[[1]])