我有一些地址字符串,其中包含字符序号(第一,第二等)。
x <-“第一银行街”
需要的输出
“ 1条银行街”
任何帮助将不胜感激。
答案 0 :(得分:0)
只需编写一个辅助函数即可为您完成此任务-尽管我猜这取决于数字的高低。如果只有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'