2016-01-10 3 views
0

Я провел опрос о том, кто больше всего использует социальные сети: мужчины или женщины? Общее количество людей, которые его используют. Первое число в переменных социальных сетей - для мужчин, второе - для женщин.R - Как рассчитать процентное соотношение на сгруппированной гистограмме?

total <- c(24,21) 
facebook <- c(14,12) 
google_plus <- c(5,10) 
snapchat <- c(15,18) 
ifunny <- c(3,4) 
skype <- c(9,10) 
instagram <- c(21,18) 
ask_fm <- c(1,5) 
kik <- c(18,16) 
tumblr <- c(2,9) 
twitter <- c(10,12) 
fb_labels<-(facebook/total*100) 
fb_labels<-paste(fb_labels,"%") 
gplus_labels<-(google_plus/total*100) 
gplus_labels<-paste(gplus_labels,"%") 
snapchat_labels<-(snapchat/total*100) 
snapchat_labels<-paste(snapchat_labels,"%") 
ifunny_labels<-(ifunny/total*100) 
ifunny_labels<-paste(ifunny_labels,"%") 
skype_labels<-(skype/total*100) 
skype_labels<-paste(skype,"%") 
instagram_labels<-(instagram/total*100) 
instagram_labels<-paste(instagram_labels,"%") 
askfm_labels<-(ask_fm/total*100) 
askfm_labels<-paste(askfm_labels,"%") 
kik_labels<-(kik/total*100) 
kik_labels<-paste(kik_labels,"%") 
tumblr_labels<-(tumblr/total*100) 
tumblr_labels<-paste(tumblr_labels,"%") 
twitter_labels<-(twitter/total*100) 
twitter_labels<-paste(twitter_labels,"%") 

Мой вопрос в том, как мне рассчитать проценты на сгруппированной гистограмме? Когда я попробовал:

dat <- cbind(fb_labels,gplus_labels) 
barplot(dat,beside=TRUE) 

я получил:

Error in -0.01 * height : non-numeric argument to binary operator 

Спасибо!

+0

После выполнения кода я обнаружил, что все 4 элемента 'dat' были строками. Я подозреваю, вы этого не хотели. – steveb

ответ

1

Вы вставили знаки процента на fb_labels и gplus_labels, так что теперь они являются строками, а не цифрами. Реконструированная версия с только номерами работает нормально:

dat <- cbind(fb_labels = facebook/total*100, gplus_labels = google_plus/total*100) 
+0

Есть ли способ добавить проценты в левую сторону вместо простых чисел? – LifeMushroom

+0

Где? Обычно вы делаете это после факта, скажем, на этикетках вашей оси. – alistaire