R语言中如何将字符串内的序数数字转换为英文序数单词?
R语言实现序数数字字符串转英文序数单词
可以通过english包结合字符串处理函数实现需求,具体步骤如下:
首先安装并加载所需包:
# 安装依赖包(首次使用时执行) install.packages(c("english", "stringr")) # 加载包 library(english) library(stringr)定义转换函数,完成数字提取、序数转换和字符串替换:
convert_ordinal_str <- function(input_str) { # 提取字符串中的数字部分 num_match <- str_extract(input_str, "\\d+") num <- as.integer(num_match) # 将数字转为序数英文并转大写 ordinal_word <- toupper(as.character(english(num, ordinal = TRUE))) # 替换原字符串中的序数数字标识(匹配ST/ND/RD/TH结尾的数字部分) str_replace(input_str, paste0(num_match, "(ST|ND|RD|TH)"), ordinal_word) }测试示例输入:
string1 <- c("1ST COMPANY", "21ST LIBRARY") string2 <- sapply(string1, convert_ordinal_str, USE.NAMES = FALSE) # 查看结果 string2
运行后会得到预期输出:
[1] "FIRST COMPANY" "TWENTY-FIRST LIBRARY"
内容的提问来源于stack exchange,提问作者James Rider
相关产品推荐
相关产品推荐

