[英]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.