说我有以下格式的数据:
categoricalVar, numericVar, responseVar
Foo, 1, TRUE
Bar, 0, TRUE
Baz, 2, FALSE
...
...
... MUCH MUCH MORE
我想创建一个条形图,其中X轴是3种不同类型的categoricalVar
,Y轴是它们的百分比,结果是TRUE
。一张桌也可以,就像这样。
Foo, Bar, Baz
respPct 0.4, 0.6, 0.9
所有Foo
中,TRUE
的百分比为0.4。
numericVar
同样的事情会很好。
0, 1, 2, ....
respPct 0.1, 0.2, 0.2
虽然我认为将numericVar组合在一起是有意义的,如下所示:
0-5, 5-10, 10-15, ....
respPct 0.2, 0.3, 0.6
有人能指出我正确的方向吗?
答案 0 :(得分:3)
首先,您必须将numericVar
转换为分类变量。但是,让我们首先创建一些示例数据:
set.seed(2)
df <- data.frame(catVar = rep(c("foo","bar","saz"),each=10),
respVar = c(sample(c(TRUE,TRUE,TRUE,FALSE,TRUE), 10, replace =TRUE),
sample(c(FALSE,TRUE,TRUE,FALSE,TRUE), 10, replace =TRUE),
sample(c(FALSE,FALSE,TRUE,FALSE,TRUE), 10, replace =TRUE)),
numVar = sample(0:15, 30, replace =TRUE))
1:为numVar
创建一个分类变量:
df$catNum <- cut(df$numVar, breaks = c(-Inf,5,10,Inf), labels = c("0-5", "5-10", "10-15"))
2:汇总数据:
df2 <- aggregate(respVar ~ catVar, df, FUN = function(x) sum(x)/length(x))
df3 <- data.frame(table(df$catNum)/30)
3:使用以下内容创建一些图:
ggplot(df2, aes(x=catVar, y=respVar)) +
geom_bar(stat="identity")
ggplot(df3, aes(x=Var1, y=Freq)) +
geom_bar(stat="identity")
答案 1 :(得分:1)