ggplot2
's函数的文档stat_bin
声明它返回一个带有附加列的新数据框。一个人实际上是如何访问这个数据框的?
可能吗?
simple <- data.frame(x = rep(1:10, each = 2))
tmp <- stat_bin(data=simple, binwidth=0.1, aes(x))
我已经弄清楚这tmp
是一个环境,ls(tmp)
并将显示环境中的对象,但是在探索了这些对象中的每一个之后,我没有看到任何像被描述为返回值的东西。
正如 Luciano Selzer 所提到的,生成下表的计算直到打印时才会执行。(看一下ggplot2:::print.ggplot()
会发现,在最后一行,它以不可见的方式返回表格,因此可以通过分配捕获它以供进一步检查。)
tmp <- ggplot(data=simple) + stat_bin(aes(x), binwidth=0.1)
x <- print(tmp)
head(x[["data"]][[1]])
# y count x ndensity ncount density PANEL group ymin ymax xmin xmax
# 1 0 0 0.95 0 0 0 1 1 0 0 0.9 1.0
# 2 2 2 1.05 1 1 1 1 1 0 2 1.0 1.1
# 3 0 0 1.15 0 0 0 1 1 0 0 1.1 1.2
# 4 0 0 1.25 0 0 0 1 1 0 0 1.2 1.3
# 5 0 0 1.35 0 0 0 1 1 0 0 1.3 1.4
# 6 0 0 1.45 0 0 0 1 1 0 0 1.4 1.5