试图用grepl创建函数来替换字符串中的一个字. 创建下面的函数 这里有几个问题: 在函数参数中定义数据,但是使用TFD_Data.这并不是造成错误,而是一个逻辑错误,使重现性和故障排除变得更加困难. 你使用str_replace不太正确,不要像你在这里做的那样“说出”的名字.(或者……也许把你的=换成一个逗号…… 自从你开始使用dplyr以来,我认为保持这种模式很好……试试这个:

2022-10-15 12:50:34标签rgrepl
提问

试图用grepl创建函数来替换字符串中的一个字。 创建下面的函数 这里有几个问题: 在函数参数中定义数据,但是使用TFD_Data。这并不是造成错误,而是一个逻辑错误,使重现性和故障排除变得更加困难。 你使用str_replace不太正确,不要像你在这里做的那样“说出”的名字。(或者……也许把你的=换成一个逗号…… 自从你开始使用dplyr以来,我认为保持这种模式很好……试试这个:

Airport_ID<-c("3001","3002","3003","3004")
Airport_Name<-c("Adelaide Airport GOODFIND","GOODFIND DTS Land Airport Land ADTS",
                "Washington DTS INC GOODFINDAirport DTSUpdated",
                "DALLAS Airport TDS GOODFIND")
TF_Data<-data.frame(Airport_ID,Airport_Name)

STR_Manip_F_M_L_V1 <- function(data=NULL,by_text1="GOODFIND",by_text2="Updated") {
  if(!require(glue)) {library(glue) }
  TFD <- TF_Data %>% 
    filter(grepl(glue("^{by_text1} "),Airport_Name) | 
             grepl(glue(" \\({by_text1}\\) "),Airport_Name) |
             grepl(glue(" \\({by_text1}\\$"),Airport_Name) )
  TFD$Airport_Name <- str_replace(TFD$Airport_Name = glue("^{by_text1} "),replacement = glue("^{by_text2} ") )
  return(TFD)
}
Error :
Error: object 'TFD' not found.
回答

STR_Manip_F_M_L_V1 <- function(data=NULL,by_text1="GOODFIND",by_text2="Updated") {
  out <- data %>% 
    filter(grepl(glue("^{by_text1} "),Airport_Name) | 
             grepl(glue(" \\({by_text1}\\) "),Airport_Name) |
             grepl(glue(" \\({by_text1}\\$"),Airport_Name) ) %>%
    mutate(Airport_Name = str_replace(Airport_Name, paste0("^", by_text1), by_text2))
  out
}
STR_Manip_F_M_L_V1(TF_Data)
#   Airport_ID                       Airport_Name
# 1       3002 Updated DTS Land Airport Land ADTS

▼版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说cuoshuo.com——程序员的报错记录

部分内容根据CC版权协议转载,如果您希望取消转载请发送邮件到cuoshuo8@163.com

辽ICP备19011660号-5