8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

将序数转换为数字

SingleNegationElimination 3月前

77 0

是否有内置方法将序数转换为数字向量?ordinal <- c(\'First\', \'Third\', \'Second\')ordinal_to_numeric(ordinal)#[1] 1 3 2ordinal2 <...

是否有内置方法将序数转换为数字向量?

ordinal <- c("First", "Third", "Second")
ordinal_to_numeric(ordinal)
#[1] 1 3 2

ordinal2 <- c("1st", "4th", "2nd")
ordinal_to_numeric(ordinal)
#[1] 1 4 2

人们确实可以创建一本字典,但这很容易变得麻烦。

帖子版权声明 1、本帖标题:将序数转换为数字
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由SingleNegationElimination在本站《string》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 并非完全内置,但您可以使用 Ritchie Sacramento 对该 english 包的建议。首先,您用单词制作一个长字符串,其中包含单词的序数值。然后,您可以在这些有序的序数值列表中找到单词的位置:

    library(english)
    ordinal <- c("First", "Third", "Second")
    o <- ordinal(1:1000)
    match(tolower(ordinal), o)
    #> [1] 1 3 2
    

    第二种方法,正如 Ritchie 所建议的,不太复杂。我使用了略有不同的方法,但最终效果是一样的。

    ordinal2 <- c("1st", "4th", "2nd")
    as.numeric(stringr::str_extract(ordinal2, "\\d+"))
    #> [1] 1 4 2
    

    Created on 2023-01-11 by the reprex 包 (v2.0.1)

    你甚至可以将它们放在一个函数中:

    ordinal_to_numeric <- function(x, max_ord=1000){
      if(any(grepl("\\d", x))){
        as.numeric(stringr::str_extract(x, "\\d+"))
      }else{
        require(english, quietly = TRUE)
        o <- ordinal(seq(1,max_ord, by=1))
        match(tolower(x), o)
      }
    }
    ordinal <- c("First", "Third", "Second")
    ordinal_to_numeric(ordinal)
    #> [1] 1 3 2
    
    ordinal2 <- c("1st", "4th", "2nd")
    ordinal_to_numeric(ordinal2)
    #> [1] 1 4 2
    

    Created on 2023-01-11 by the reprex 包 (v2.0.1)

返回
作者最近主题: