首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何生成一个因素在另一个因素上的条形图?

我如何生成一个因素在另一个因素上的条形图?
EN

Stack Overflow用户
提问于 2013-04-16 12:25:56
回答 1查看 183关注 0票数 3

给定一个如下所示的具有2个或更多因子的数据帧:

代码语言:javascript
复制
 data <- data.frame(V1=sample(c('A','B','C'), 50, T), V2=sample(c('X','Y'),50,T))

我可以独立地生成一个因子列表的柱状图,例如:

代码语言:javascript
复制
library(lattice)
with(data, barchart(V1))

如何生成以第二个因子值为条件的多面板图?我希望使用的语法是:

代码语言:javascript
复制
with(data, barchart(V1 | V2))

但这会产生以下警告:

代码语言:javascript
复制
Warning message:
In Ops.factor(V1, V2) : | not meaningful for factors

并且没有有意义的输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 12:41:46

当您调用with(data, barchart(V1))时,您就是在调用barchart,而它调用的是barchart.default,后者调用barchart(table(V1))的等价物(并因此调用barchart.table)来生成您想要的绘图。

如果你想同时包含V1V2,你必须在你的表格中使用它们,即。

代码语言:javascript
复制
with(data, barchart(table(V1, V2))

然后可以使用groups = TRUE将最后一个维度设置为分组变量

例如

代码语言:javascript
复制
with(data, barchart(table(V1, V2), groups = TRUE))

如果你想使用公式方法,你必须事先自己计算这些值。

例如

代码语言:javascript
复制
 library(data.table)
 DT <- data.table(data)

 barchart(V1~N|V2,DT[, .N,by= list(V1,V2)])

它给出了与with(data, barchart(table(V1, V2), groups = TRUE))相同的结果

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16028792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档