のコードを見て、mixedsort
自分で R に入力することができます。その後、追加のパッケージをインストールせずに機能を利用できます。
order
または、文字列を断片に分割した後に関数を使用できます。
1 <- c('p 1', 'q 2','p 2','p 11', 'p 10')
sort(v1)
tmp <- strsplit(v1, ' +')
tmp1 <- sapply(tmp, '[[', 1)
tmp2 <- as.numeric(sapply(tmp, '[[', 2))
v1[ order( tmp1, tmp2 ) ]
または、メソッドを記述しxtfrm
てベクターに適切なクラスを与えることで、これを自動化できます。
xtfrm.mixed <- function(x) {
tmp <- strsplit(x, ' +')
tmp1 <- sapply(tmp, '[[', 1)
tmp2 <- as.numeric(sapply(tmp, '[[', 2))
tmp3 <- rank(tmp1, ties.method='min')
tmp4 <- rank(tmp2, ties.method='min')
tmp3+tmp4/(max(tmp4)+1)
}
class(v1) <- 'mixed'
sort(v1)
すべてのデータが「p」で始まる場合は、それを取り除いて数値に強制し、 in で使用できますorder
。