我想使用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中的错误:二元运算符的非数字参数
答案 0 :(得分:0)
我不确定我是否完全掌握了你想要做的事情。无论如何,我会避免在绘图代码中进行任何计算。首先准备数据。 这是我的解决方案,如果这是你想要实现的目标:
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