首页 > 解决方案 > 使用R如何删除特定字符后的所有单词

问题描述

我在 tbl_df 中有一个标题为“搜索”的列,并且想删除问号“?”右侧的所有字符。

例子

Atlanta?adfjladsfjf
Georgia?fdfdfjflajf
LosAngeles?adlfdkfd

期望的输出

Atlanta
Georgia 
Los Angeles

标签: rstringr

解决方案


我们可以用sub

tbl_df$Search <- sub("\\?.*", "", tbl_df$Search)

如果需要在多个列中应用,请使用lapplyfrombase R

nm1 <- names(tbl_df)[1:2] # // applying for first two columns
tbl_df[nm1] <- lapply(tbl_df[nm1], sub, pattern = "\\?.*", replacement  = "")

或使用tidyverse

library(dplyr)
library(stringr)
tbl_df <- tbl_df %>%
         mutate(across(all_of(nm1), str_remove, pattern = "\\?.*"))

推荐阅读