Rでtable(A、B)を使用した後、特定の順序に従って列と行を並べ替えるにはどうすればよいですか?

wolfsatthedoor

私はR作業しており、を使用してデータフレームの2つの列を表にしています。

table(A,B)

ファイナルテーブルは、TAB4 x4列であると呼びます。私が思いついた他の注文に基づいて注文したいと思います。私が欲しいcol1-col4からの順序は、と呼ばれるベクトルにありorderます。

列と行順序を変更する方法があるTABのためにすべきorder

TAB
   A  B   C  D 
A  6  0   1  2 
B  3  12  0  1
C  4  5   6  1
D  8  2   8  90

order = c('C','D','A','B')

必要な出力:

TABNew
   C  D   A  B 
C  6  1   4  5 
D  8  90  8  2
A  1  2   6  0
B  0  1   3  12
MrFlick

したがって、あなたの場合、サンプル入力は次のようになります。

dd<-data.frame(
    x=rep(LETTERS[1:4], c(9, 16, 16, 108)),
    y=rep(rep(LETTERS[1:4], 4), c(6, 0, 1, 2, 3,12,0,1,4,5,6,1,8,2,8,90))
)
myord<-c("C","D","A","B")

事後に並べ替えることができます

tt<-with(dd, table(x,y))
tt[myord, myord]

#      C  D  A  B
#   C  6  1  4  5
#   D  8 90  8  2
#   A  1  2  6  0
#   B  0  1  3 12

または、各要素のレベルの順序を明示的に設定できます(これtable()がカウントアップされます)

tt<-with(dd, table(factor(x, levels=myord),factor(y, levels=myord)))
tt

#      C  D  A  B
#   C  6  1  4  5
#   D  8 90  8  2
#   A  1  2  6  0
#   B  0  1  3 12

table因子のレベルの順序に従って値を返します。(これは、因子を使用する他の多くの関数にも当てはまります)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ