1

plyrパッケージ(plyr v1.8、R v2.15.1 Roasted Marshmallows)でmapvaluesを使用すると、「to」引数が係数の場合に奇妙な結果が得られます。例えば、

v1 = c(1,2,2,1,2)

mapvalues(v1, from = c(1, 2), to = factor( c('A', 'B') ) )

戻り値

[1] 1 2 2 1 2

それ以外の

[1] A B B A B
Levels: A B

私にはバグのように見えますが、開発者に迷惑をかける前に他の人に確認したかったのです。これはバグですか?

4

2 に答える 2

2

factor()からを削除する必要がありますmapvalues()。係数への変換は、値の置換後に実行できます。

v1<-mapvalues(v1, from = c(1, 2), to = c('A', 'B')) 
#Now convert to factor
v1<-as.factor(v1)
v1
[1] A B B A B
Levels: A B
于 2013-03-20T06:22:55.457 に答える
2

これはおそらくバグではありません。係数は整数として内部に格納されます。ファクターがあり、内部整数ストレージ値の代わりにファクターのレベルにマップしたい場合は、levels最初にファクターを呼び出すことができます。

mapvalues(v1, from = c(1, 2), to = levels(factor(c('A', 'B'))))

結果を要因にしたい場合は、factor後で結果を呼び出すだけです。

于 2013-03-20T06:26:07.067 に答える