我想基于其值的总和(在本例中为列值)过滤表输出。然后我想为那些高于某些总和的值创建一个条形图。
代码:
counts <- table(mtcars$vs, mtcars$gear)
counts
#output
#x 3 4 5
#0 12 2 4
#1 3 10 1
#I want to create a barplot for those with column sums > 12 ie. gears 3 and 4.
#pseudo-code
#barplot(counts[colSums>12]?
我的预期输出是它会显示只有2列的条形图,用于齿轮3和4.如何在R中执行此操作?
PS:我可以创建找到每辆车的齿轮数(table(mtcars$gear)
),将那些总和为&gt; 12,然后创建另一个table(mtcars$vs, mtcars$gear)
来创建有2列的条形图,但我正在寻找是否有任何直接的方法来做到这一点。
答案 0 :(得分:1)
一个ggplot2解决方案,
# install.packages(c("ggplot2"), dependencies = TRUE)
library(ggplot2)
g <- ggplot(subset(mtcars, gear <= 4), aes(factor(vs)))
g + geom_bar(aes(fill = factor(gear)))
counts <- with(mtcars, table(vs, gear))
counts
barplot(counts[,colSums(counts) >= 12])