2017-05-10 3 views
1

次のフラグベクタを降順で作成します。つまり、空のセルは最高を意味し、Mは最低を意味します。だからmin( ""、E)はEを与えます。Rでこれをどうやってやるべきですか?シーケンス文字ベクタをRで作成する

flag= c(" ", "T", "I", "E", "M") 

答えて

0

Rでこれを行う方法はありません。ベクトルを整数に変換することをおすすめします。

あなた本当にでは、次の方法で独自のクラスを定義し、代わりに文字ベクトルの要素を使用して、それについて行くことができ、このような何かをしたい場合:

# Create your vector as a factor, so that you can assign an order 
flag <- factor(c(" ", "T", "I", "E", "M")) 

# Define the order of the levels (= unique values) of your factor 
levels(flag) <- c("M", "E", "I", "T", " ") 

# assign a custom class to your factor so that you can write a min() method for it 
class(flag) <- c("my_flag", class(flag)) 

# write a min function for your my_flag class 
min.my_flag <- function(x, na.rm = FALSE){ 
    if(na.rm) x <- na.omit(x) 
    x[which.min(as.integer(x))] 
} 

min(flag) 
関連する問題