繁体   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