0

私の質問はRでかなり繰り返されるようです(データフレームで係数を数値に変換します)。それでも解決策は簡単ではありません。

私が望むのは、順序付き因子変数を順序付き数値変数に体系的に再コード化することです。

潜在的な(単純な)解決策についてあなたの洞察を得たいと思います。

私のデータは次のようになります

data = rbind(
  c('a1', 'strongly favor', 'bad', 'low'), 
  c('b1', 'neither nor', 'good', 'middle'), 
  c('c1', 'favor', 'good', 'low'), 
  c('d1', 'strongly oppose', 'good', 'high'), 
  c('e1', 'oppose', 'average', 'high') 
  )

data = as.data.frame(data)
data$V2 = factor(data$V2, levels = c('strongly favor', 'favor', 'neither nor', 'oppose', 'strongly oppose')) 
data$V3 = factor(data$V3, levels = c('good', 'average', 'bad')) 
data$V4 = factor(data$V4, levels = c('high', 'middle', 'low')) 

  V1              V2      V3     V4
1 a1  strongly favor     bad    low
2 b1     neither nor    good middle
3 c1           favor    good    low
4 d1 strongly oppose    good   high
5 e1          oppose average   high

私はこのような簡単な解決策を考えていました:

levels(data$V2) <- 1:length(data$V2)

すべての変数を1つずつ実行するのを避けて、小さなループを考えていました

# First column is the identifier 
for(i in 2:ncol(data)){
  levels(data[,i]) <- 1:length(data[,i])
}

この解決策はいくつかのエラーを引き起こす可能性がありますか?
ループを避けるにはどうすればよいですか?

4

0 に答える 0