2015-06-20 60 views
0

我想要一個簡單而有效地創建比較比較表的方法來比較人口和人口子集的調查答案。有效的方式來創建比較表的調查在R

以下是樣本數據集:

id <- c(11, 12, 13, 14, 15, 16) 
gender <- c("M", "M", "F", "F", "M", "F") 
trade.belief <- c("I love NAFTA", "I hate NAFTA", "I love NAFTA", "I hate NAFTA", "I hate NAFTA", "I love NAFTA") 
favorite.color <-c("My favorite color is green", "My favorite color is green", "My favorite color is blue", "My favorite color is blue", "My favorite color is blue", "My favorite color is green") 
votes.in.elections <- c("Yes", "Yes", "No", "Yes", "Yes", "Yes") 
df <- data.frame(id, gender, trade.belief, votes.in.elections, favorite.color) 
df.green <- df[df$favorite.color == "My favorite color is green",] 
df.blue <- df[df$favorite.color == "My favorite color is blue",] 

大多數在線調查工具將有一個有效的方式來過濾或選擇誰喜歡的顏色綠色人比較,並排到普通人羣或人誰像藍色一樣,適合所有調查問題。

所以,如果我想看看大多數人如何投票或類似北美自由貿易協定是他們最喜歡的顏色是綠色的,我可以做

table(df[df$favorite.color == "My favorite color is green",]) 

但是,這不利於比較其他子集化的人羣,和這也是查看數據的一種非常低效的方式。

  1. 我想辦法在表人想象誰喜歡綠色,既普通人羣和人民誰喜歡藍色,在所有調查問題和變量。比例表,不計數。

  2. 理想情況下,我也想用一個條形圖將其可視化。我的想法是,人們會想要使用ggplot上的data.wrapper功能。

回答

0

爲了得到一個不錯的表比較不同喜歡的顏色和不同層次百分比NAFTA的愛,你可以使用prop.table()功能:

prop.table(table(df$favorite.color, df$trade.belief)) 

爲直觀起見,你可以使用facet_wrap()功能在ggplot:

df$trade.belief <- as.factor(df$trade.belief) 
ggplot(df, aes(x=trade.belief))+geom_bar()+facet_wrap(~favorite.color) 

另外,如果你在同一個情節想讓他們,你可以只使用填充審美:

ggplot(df, aes(x=trade.belief, fill=favorite.color)) + geom_bar()+scale_fill_manual(values=c('blue', 'green')) 
+0

無論有多少列,你如何得到每列的性別差異? – tom

相關問題