0
d <- c(3,4,2,5,4,7,6,5,8,9,5,6,3,1,2,6,3)

cut(d,3)次の3つのレベルを生成します(0.992,3.66] (3.66,6.34] (6.34,9.01]。これらの範囲ではなく、レベル1、2、3として結果を表示する方法はありますか?

(1,2,1,2,2,3,2,2,3,3,2,2,1,1,1,2,1)要素d.1がカット1にあり、要素d.2がカット2または中間層にあることを示す結果がこのように表示されることを確認したいと思います。

ヘルプ内でcut()「labelsパラメーターが指定されている場合、その値は因子レベルに名前を付けるために使用されます」と書かれているので、試しcut(d,3,lables=c(1,2,3))ましたが、うまくいきませんでした。どんな助けでも大歓迎です。

4

3 に答える 3

4

試すfactor(cut(d,3), labels=1:3)

詳細については、?factor

ちなみに、cut(d, 3, labels=1:3)私にも効きます。

于 2013-03-06T23:59:19.517 に答える
2

設定labels=FALSEすると、素晴らしい出力が得られます。

d <- c(3,4,2,5,4,7,6,5,8,9,5,6,3,1,2,6,3)
cut(d, 3, labels=FALSE)
 [1] 1 2 1 2 2 3 2 2 3 3 2 2 1 1 1 2 1

見る?cut

label = FALSEの場合、係数の代わりに単純な整数コードが返されます。

編集

数値の誤解を避けるために、ここでは別の方法

cut(d, 3, labels=LETTERS[1:3])
[1] A B A B B C B B C C B B A A A B A
于 2013-03-07T00:23:29.987 に答える
0

これもうまくいくと思います:

d <- c(3,4,2,5,4,7,6,5,8,9,5,6,3,1,2,6,3)
as.numeric(factor(cut(d,3)))
于 2013-03-07T00:51:44.933 に答える