簡體   English   中英

在R中創建一個序列字符向量

[英]Create a sequence character vector in R

我想按降序創建以下標志向量。 即空單元表示最高,M表示最低。 所以min(“”,E)應該給E.我應該如何在R中做到這一點?

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

在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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM