1

数値ベクトルに変換しようとしている係数 RFyhat があります。私はすでにそれを発見しました

as.numeric(levels(RFyhat))[RFyhat]

希望どおりに動作し、この構造で少し遊んでみました:

c(1,2,20,4,5,6,7)[RFyhat]

も期待どおりに機能します(RFyhat7つのレベルがあります)。

だから私はこの構造の振る舞いを理解していますが、誰かがこの構文がどのように機能することを意図しているのか、それとも単に「構文糖衣」なのかを説明できるかどうか疑問に思っています. より具体的には[RFyhat]、インデックス ベクトルとして機能しますか? もしそうなら、インデックスとして使用されたとき、ファクターは一般的にどのように振る舞いますか?

4

1 に答える 1

2

はい、因子は、文字やその他のものではなく、インデックス作成に使用されると整数に変換されると思います。

この例を見てください

> fac <- factor(letters[c(1,1,2,1,3,3,2,1)])
> vec <- c(b=1, a=2, c=3)
> vec[fac]
b b a b c c a b 
1 1 2 1 3 3 2 1 

したがって、名前の順序が異なっていても、fac要素 1 は の要素 1 を返します。vec

個人的にas.integer(as.character(RFyhat))as.numeric(levels(RFyhat))[...].

于 2012-04-25T15:47:30.203 に答える