R 计数表中的ggplot2箱线图

R 计数表中的ggplot2箱线图,r,ggplot2,boxplot,R,Ggplot2,Boxplot,我有一个用另一个工具生成的计数表,我想用ggplot2从中得到一个箱线图 例如,假设我有: df1 = data.frame(nSiblings = c(0, 1, 2), count = c(10, 15, 12)) 而不是 df2 = data.frame(nSiblings = c(rep(0, 10), rep(1, 15), rep(2, 12))) 我知道如何从第二个数据帧生成箱线图: qplot(y=df2$nSiblings, x=1, geom = "boxplot")

我有一个用另一个工具生成的计数表,我想用ggplot2从中得到一个箱线图

例如,假设我有:

df1 = data.frame(nSiblings = c(0, 1, 2), count = c(10, 15, 12))
而不是

df2 = data.frame(nSiblings = c(rep(0, 10), rep(1, 15), rep(2, 12)))
我知道如何从第二个数据帧生成箱线图:

qplot(y=df2$nSiblings, x=1, geom = "boxplot")
ggplot(df1, aes(x = nSiblings, y = count)) + geom_bar(stat = "identity")
我知道如何从第一个数据帧生成直方图:

qplot(y=df2$nSiblings, x=1, geom = "boxplot")
ggplot(df1, aes(x = nSiblings, y = count)) + geom_bar(stat = "identity")

但是如何从第一个数据帧获得箱线图呢?

Ggplot能够处理权重,因此您可以尝试以下方法:

ggplot(df1, aes(x=1,y=nSiblings,weights=count)) + geom_boxplot()

仅供参考,从df2生成df1不需要其他工具。例如,你可以做librarydplyr;谢谢,但我知道。此数据帧是另一个工具的输出,实际上,计数可能大于100万。也可以选择“重新生成”大型数据帧,但当计数大于1e6时,计算/内存效率不高。对于me R版本3.6.3,ggplot2版本3.2.1,它需要是“权重”而不是“权重”,在末尾删除“s”。否则将抛出一个错误。