10

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)并将显示环境中的对象,但是在探索了这些对象中的每一个之后,我没有看到任何像被描述为返回值的东西。

4

1 回答 1

9

正如 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
于 2012-09-04T17:10:12.853 回答