如何计算折线图中要使用的变量中一个值的比例?

时间:2018-10-22 03:56:27

标签: r ggplot2 dplyr percentage

我正在处理最高法院的数据集。我正在尝试以一票制的利润来可视化每个术语中所占案件的百分比。我有一些条款,多数票数和少数票数的变量。可视化的最佳选择是一个折线图,其术语为x轴,决策百分比以一票制利润为y轴。

library(tidyverse)
library(dplyr)
scdby %>%
  select(majVotes, minVotes, term)

我为投票保证金创建了一个新变量。

scdbv %>%
 select(majVotes, minVotes, term) %>%
 mutate(margin = majVotes - minVotes)

从那时起,我觉得我已经在阳光下尝试了每种方法,以获取要在图表中使用的ggplot单保证金投票的百分比。这是最新的方法:

scdbv %>%
  select(majVotes, minVotes, term) %>%
  mutate(margin = majVotes - minVotes) %>%
  mutate(margin1 = if_else(margin == "1", "1", "NA")) %>%
  mutate(margin1 = as.integer(margin1)) %>%
  ggplot(aes(x = term)) +
  geom_line(aes(y = count(margin1) / n()))

哪个返回:

  no applicable method for 'groups' applied to an object of class "c('integer', 'numeric')"

我敢肯定,如何做到这一点我很想念。

1 个答案:

答案 0 :(得分:1)

scdbv %>%
  select(majVotes, minVotes, term) %>%
  mutate(margin = majVotes - minVotes) %>%
  group_by(term) %>%
  summarize(percentage=sum(margin==1)/n()) %>%
  ggplot(aes(term,percentage)) +
    geom_line()

创建margin之后,我将term分组,并创建一个data.frame,其中对于每个术语,边距为1的案例所占的百分比为summarize d。然后,我绘制这些新数据。如上面的评论所述,最好在x调用中定义yggplot(),然后geom_line只能包含颜色和线条粗细。 / p>

例如,我创建了这个假样本:

scdbv<-data.frame(majVotes=c(6,4,5,6,4,5),minVotes=c(5,2,3,3,3,4), term=c(1,1,2,2,3,3))

结果是(有点令人鼓舞):

enter image description here

您可能希望研究theme(),以使其更具吸引力。