Rを使った複数回答のグラフ作成

最近Rを利用してプレースメント試験やアンケートを集計しています。Rは非常に優れた統計ソフトですが、だれでも無料で使うことができます。

大学のコンピュータ教室のWindowsの(たぶん)すべてのコンピュータに入っています。

Rをつかって複数回答をグラフにしてみました。

データは留学生のガイダンスのアンケート結果です。

「大学の日本語の授業で何を学びたいですか?」という質問に対する回答が複数回答です。

複数回答は一つのセルに入ってくるので、選択肢別に列を新たにつくり、これを選んだ(1)、選ばなかった(0)として表を作り直して処理するのが一般的だと思います。

もちろん、Excelでも「区切り位置」を使ってできますが、Rだと言ったん算出のための式を作っておくと簡単にできます。

実際やってみると次のようになりました。

1.データqnnair2016fnihonWithoutIDをRにいれてdata1と名付けました。

大学のコンピュータでは、エラーがでます。このサイト(Wordpress)がダブルクォーテーション・マークを全角にしてしまうのが原因のようです。半角に直せばうまく行くと思います。

> data1<- read.csv(“qnnair2016fnihonWithoutID.csv”)

スクリーンショット 2016-04-29 11.02.02

 

 

 

 

 

 

2.データ1の複数回答”what”から棒グラフを作成する次のmultiplequetionsをRに貼り付け、実行します。このブログでは””が全角に自動的に変換されるので、下記のコピーをRに貼り付けるとエラーになります。上にリンクしたファイルを利用してください。

 

#複数回答whatの回答を分けてタイトルをつける。

lev <- levels(factor(data1$what))

lev <- unique(unlist(strsplit(lev, “”))) #文字ごとに分ける。

mnames <- gsub(” “, “_”, paste(“what”, lev, sep = “”))

result <- matrix(data = “0”, nrow = length(data1$what), ncol = length(lev))

char.data1 <- as.character(data1$what)

for (i in 1:length(lev)) {

result[grep(lev[i], char.data1, fixed = TRUE), i] <- “1”

}

result <- data.frame(result, stringsAsFactors = TRUE)

colnames(result) <- mnames

d1 <- cbind(data1,result) #whatを分けた表をd1と名付ける。

 

# 度数分布表を作り回答者数に対する%にしd2と名付ける。

vars <- c(“whatA”,”whatB”,”whatC”,”whatD”,”whatE”) #順序を指定する。

as.table(sapply(d1[,vars], function(v) {

sel <- as.numeric(v==1)

sum(sel)/nrow(d1)*100

}))

d2<- as.table(sapply(d1[,vars], function(v) {

sel <- as.numeric(v==1)

sum(sel)/nrow(d1)*100

}))

 

# 小数点1位までとしd3と名付ける。

d3<-round(d2,1)

 

# d3の棒グラフを作り、某にラベルつける。

par(family=”HiraKakuProN-W3″) #日本語フォントを入れる。

barplot(d3, main = “何を学びたいですか?”, ylab = “回答者に対する割合”, names.arg = c(“N1”, “授業”, “就職”,”大学院”,”その他”),col=c(“red”,”green”,”orange”,”lightgreen”,”white”))

3.上記を実行すると次のグラフが表示されます。

スクリーンショット 2016-04-29 11.26.31

 

 

 

 

 

 

上のグラフから、1年生から3年生までの留学生の50%ほどがN1に対応した授業を要望していることがわかります。

参考にしたページ

http://stackoverflow.com/questions/14770186/encode-multiple-choice-answer-in-r

 


柴田 啓文

紹介 柴田 啓文

経済学部教員です。このサイトの管理者の一人です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です