如何删除R数据框文本列开头的单个或连续连字符?
在R语言中删除data.frame字符串列开头的连字符
先看输入的数据框:
df <- data.frame (x = c(12,14,15,178), text = c("--Car","-Transport","Big-Truck","--Plane"))
要实现只删掉text列开头的单个或连续-,同时保留字符串中间的连字符(比如Big-Truck里的-),用正则表达式就能轻松解决,给你两种常用方法:
方法1:基础R原生函数gsub()
直接用gsub匹配开头的一个或多个连字符,替换成空字符串:
df$text <- gsub("^-+", "", df$text)
运行后输出结果:
print(df) # x text # 1 12 Car # 2 14 Transport # 3 15 Big-Truck # 4 178 Plane
正则说明:^指定匹配字符串的起始位置,-+表示匹配1个或连续的多个-,这样就只会处理开头的连字符,不会影响中间的。
方法2:tidyverse工具包的stringr函数
如果你习惯用tidyverse系列工具,用stringr里的str_remove_all或者str_remove都可以:
library(stringr) # 两种写法效果一致 df$text <- str_remove_all(df$text, "^-+") # df$text <- str_remove(df$text, "^-+")
运行后同样能得到期望的输出。
内容的提问来源于stack exchange,提问作者user18948933
相关产品推荐
相关产品推荐

