私はRで作業しており、を使用してデータフレームの2つの列を表にしています。
table(A,B)
ファイナルテーブルは、TAB
4 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
したがって、あなたの場合、サンプル入力は次のようになります。
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]
コメントを追加