簡體   English   中英

(count)/ scale中的錯誤:R中二進制運算符的非數字參數

[英]Error in (count)/scale : non-numeric argument to binary operator in R

我想用ggplot2創建一個情節,顯示特定地區政黨的投票百分比相對於該國以外的地區的選民人數。

這是我的數據框:

   data <- read.table(header=TRUE, text='
                 REGION Q99
                 Tunis  Nahdha
                 Tunis Jabha
                 Tunis  NidaaTounes
                 Tunis  Nepasvoter
                Tunis  Nepasvoter
                 Tunis  Nepasvoter
               Tunis  NidaaTounes
                 Tunis  Nepasvoter
                Tunis        Nahdha
               Tunis  NidaaTounes
                 Tunis           CPR
                Tunis        Nahdha
                Tunis        Autres
                Tunis  Nepasvoter
                Tunis  Nepasvoter
                 Tunis        Nahdha
                 Tunis Jabha
               Tunis  Nepasvoter
                Tunis        Nahdha
                Tunis        Nahdha
               Tunis JabhaChaabia
                Tunis        Autres
                Tunis  Nepasvoter
                Tunis  NidaaTounes
                Tunis  Nepasvoter
                Tunis  NidaaTounes
                Tunis  Nepasvoter
                Tunis  NidaaTounes
                Tunis Jabha
                Tunis  NidaaTounes
                Tunis        Autres
                Tunis        Nahdha
                Tunis        Nahdha
                Tunis        Autres
                Tunis Jabha
                Tunis  Nepasvoter
                Tunis  Nepasvoter
               Tunis           CPR
                Tunis        Nahdha
                 Tunis  Nepasvoter
                Tunis  Nepasvoter
                Tunis  Nepasvoter
                Tunis        Nahdha
                 Tunis  NidaaTounes
                 Tunis           CPR
                Tunis           CPR
                 Tunis  Nepasvoter
                Tunis        Autres
                 Tunis        Nahdha
                Tunis  NidaaTounes
                Tunis        Nahdha
                Tunis        Autres
                Tunis  Nepasvoter
              Ariana        Nahdha
               Ariana           CPR
               Ariana        Nahdha
               Ariana  Nepasvoter
               Ariana  NidaaTounes
              Ariana           CPR
               Ariana  Nepasvoter
               Ariana        Nahdha
               Ariana  Nepasvoter
              Ariana  NidaaTounes
               Ariana           CPR
               Ariana  NidaaTounes
               Ariana  NidaaTounes
               Ariana  NidaaTounes
              Ariana           CPR
              Ariana        Nahdha
               Ariana           CPR
              Ariana        Nahdha
              Ariana        Nahdha
               Ariana           CPR
               Ariana        Nahdha
               Ariana  Nepasvoter
               Ariana  NidaaTounes
             Ariana  NidaaTounes
              Ariana        Nahdha      ')

首先我使用了這段代碼:

  g <- ggplot(data, aes(x = REGION, y =(..count..)/(nrow(data[data$REGION=="Ariana",])), fill = Q99))
  g <- g + geom_bar(position = "stack")

但我得到了這個錯誤:

nrow中的錯誤(data [data $ REGION ==“Ariana”,]):找不到對象'數據'

然后我嘗試使用environment= environment()

  scale = nrow(data[data$REGION=="Ariana",])
  g <- ggplot(data, aes(x = REGION, y = (..count..)/scale, fill = Q99), environment = environment())
  g <- g + geom_bar(position = "stack")

然后我收到了這個錯誤:

(count)/ scale中的錯誤:二元運算符的非數字參數

我不確定我是否完全掌握了你想要做的事情。 無論如何,我會避免在繪圖代碼中進行任何計算。 首先准備數據。 這是我的解決方案,如果這是你想要實現的目標:

   dataSummarized <- group_by(data, REGION, Q99) %>% 
            summarise(percentVotes = n()) %>% 
            mutate(freq = percentVotes / sum(percentVotes))



    g <- ggplot(dataSummarized, aes(x = REGION, y = freq, fill = Q99))
    g <- g + geom_bar(stat = "identity")
    g

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM