例如,我有一个这样的数据框:
Year|Value
2013|TRUE
2013|TRUE
2013|TRUE
2013|TRUE
2013|FALSE
2013|FALSE
2013|TRUE
2013|FALSE
2014|TRUE
2014|FALSE
2014|FALSE
2014|TRUE
2015|TRUE
2015|TRUE
2015|FALSE
2015|FALSE
2015|TRUE
2015|TRUE
我想绘制每年真相总量的折线图。
我试过了
data <- data.frame('t'=year, 'a'=Value)
plot(data)
...但是它在x轴和y轴上给出的年份为0或1(是对还是错。)而不是TRUE
每年的s数。
我想绘制每年真相总量的折线图。
诀窍在于转换数据以显示您想让情节显示的内容:每年的真实计数,而不是每个观察到的年布尔值。
这是一种dplyr
减少数据的方法。它过滤TRUE
值,然后计算TRUE
每年出现多少行值。
library(dplyr)
library(ggplot2)
tab = structure(list(Year = c(2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2014L, 2014L, 2014L, 2014L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L), Value = c(TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE)), .Names = c("Year", "Value"), class = "data.frame", row.names = c(NA, -18L))
tab_sum = tab %>% group_by(Year) %>%
filter(Value) %>%
summarise(trues = n())
# Source: local data frame [3 x 2]
#
# Year trues
# (int) (int)
# 1 2013 5
# 2 2014 2
# 3 2015 4
现在,数据中的每一行都为该图提供一个x
和y
对:
ggplot(tab_sum, aes(Year, trues)) + geom_line()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句