0

次のような調査結果を含むデータ フレームがあります。

          Q1         Q2       Q3
1      Agree No opinion Disagree
2 No opinion No opinion Disagree
3      Agree            Disagree

各質問の平均回答を得るために、アンケートの回答を数値に変換するにはどうすればよいですか? gsub を使用して、各列の各テキスト回答を数値に置き換えることができますが、もっと良い方法があるはずです。

> str(x)
'data.frame':   3 obs. of  3 variables:
 $ Q1: Factor w/ 2 levels "Agree","No opinion": 1 2 1
 $ Q2: Factor w/ 2 levels "","No opinion": 2 2 1
 $ Q3: Factor w/ 1 level "Disagree": 1 1 1
4

2 に答える 2

5

OK、これでクリアです。

各列を文字に変換してから、(共通のレベルで) 因子に変換し、次に整数に変換します。

sapply(data, function(x) as.integer(factor(as.character(x), levels=c("Agree", "No opinion", "Disagree"))))
于 2013-03-12T22:10:49.973 に答える
0

私はあなたが何を望んでいるのか誤解しているに違いありませんが、あなたはカテゴリ変数を持っているので、それdata.frameだけで使用することはできませんsummaryか?

#Example
q1 <- sample( c("Agree" , "No opinion" ) , 10 , replace = TRUE )
q2 <- sample( c(" " , "No opinion" ) , 10 , replace = TRUE )
q3 <- sample( c("Agree" , "Disagree" ) , 10 , replace = TRUE )

x <- data.frame( q1 , q2 , q3 )

summary(x)
  q1             q2           q3   
  Agree     :4   ,         :4   Agree   :5  
  No opinion:6   No opinion:6   Disagree:5  
于 2013-03-12T22:26:36.130 に答える