2017-05-24 5 views
0

私は因子変数のすべてのレベルの名前の名前を変更しようとしていますので、TukeyHSDを実行できます。 Tukeyの手順では、レベルの名前に名前が付けられていると気に入らない。したがって、私は名前そのものを気にせず、名前は文字にしたいだけです。名前はアルファベットの一文字にすることができます。多くのレベルの因子の名前を変更 - R -

問題は、私は非常に多くのレベルがあることです。たとえば:

x1 <- sample(1:75,100,replace=T) 
x1 <- as.factor(x1) 

> str(x1) 
Factor w/ 54 levels "1","2","4","5",..: 26 33 23 23 15 18 21 12 29 16 ... 

私はそれらすべての名前を変更する方法を知っている唯一の方法は、てmanualy各レベルの名前を入力して、次のとおりです。

levels(x1) <- c('name1', 'name2',...,'name54') 

は、どのように私はすべての名前を一つずつtypying避けることができますか?自動化された名前の変更はありますか?

ありがとうございました!

+0

'レベル(×1)< - paste0( "名前"、レベル(×1))' –

+0

はあなたに@Aureleありがとう、何のthats私は – Danka

答えて

1

@コメントにAurèleの答えがあるかもしれませんが、あなたのレベルに数字を入れたくない場合は、ランダムな文字を組み合わせてみてください。ここでは可能な解決策である:

sample(combn(letters, 2, FUN = function(x) {paste0(x[1], x[2])}), length(levels(x1))) 

出力:

[1] "uv" "co" "ko" "eg" "ew" "dv" "ej" "px" "bc" "ku" "ip" "hz" "dk" "ou" "cd" "an" "hv" "nz" "uy" "bd" 
[21] "kz" "af" "oy" "qz" "kl" "be" "ox" "bi" "mv" "fo" "el" "gj" "tv" "lv" "cl" "vx" "hl" "hy" "rv" "np" 
[41] "dt" "br" "gz" "av" "aw" "nr" "bj" "ho" "gk" "mq" "ms" "lp" "jw" "gi" "cq" 
+0

が必要でした。これはうまくいきます。レベル1の変数x1をx11、変数x1のレベル2のx12という名前を付けたいのですが? – Danka

+0

私はこれの背後に論理を得ることはありません。レベル3を「x13」にする必要がありますか? –

+0

申し訳ありませんが、質問は明確ではありませんでした。しかし正確にはlevel3 - > x13、level4 - > x14 – Danka

関連する問題