r - R:用数字(1、2等)替换字符序数(第一、第二等)
问题描述
我有一些带有字符序号的地址字符串(第一,第二等等)。
x <- “第一银行街”
需要输出
“1条银行街”
任何帮助,将不胜感激。
解决方案
只需编写一个辅助函数来为您完成它 - 尽管我想这取决于数字有多高。如果只有 1 到 10,那很容易。
毫无疑问,这是一种更优雅的方法,但这肯定会解决您的基本问题。
address_string_replace <- function(x) {
require(tidyverse)
address_tbl <- tibble(number = 1:10,
text = c('first','second','third','fourth','fifth','sixth','seventh','eighth','ninth','tenth'))
address_test <- 1:nrow(address_tbl)
tested_value <- tibble()
for (i in address_test) {
new_test <- tibble(test = ifelse(str_detect(x,address_tbl$text[i])==TRUE,address_test[i],0))
tested_value <- bind_rows(tested_value,new_test)
}
tested_value <- tested_value %>%
filter(!test == 0)
value <- tested_value[['test']]
address_fix <- address_tbl %>%
filter(number == value)
new_x <- gsub(address_fix$text,address_fix$number,x)
return(new_x)
}
然后你可以测试它:
x1 <- 'first bank street'
address_string_replace(x1) #returns '1 bank street'
x2 <- 'second port avenue'
address_string_replace(x2) #returns '2 port avenue'
推荐阅读
- ruby-on-rails - 无法在 Rails 6 中创建或构建嵌套模型
- vue.js - 为什么过渡组动画不透明度但不动画高度?
- date - 所需的二进制日期规范
- ajax - 在 WordPress 上编写 AJAX 点击计数器
- ruby-on-rails - ajax请求部分中的非空查询非常慢
- tensorflow - 计算两个 RGB 点云之间的差异
- python - 试图获取事件 channel_name_change
- forms - 我可以按分隔符拆分并在 SharePoint 列表中创建新行吗?
- javascript - JavaScript 或 jQuery 中的 HTML 表单验证逻辑
- controller - 线性化一阶传递函数