在R中按条件筛选vector元素:提取包含“km”的字符串
R语言筛选含"km"字符串的向量元素实现方法
你的原始向量定义如下:
info <- c("1.8 Unspecified Hybrid", "Hatchback", "Automatic", "Grey", "40,186 km", "2019 (191)", "1 owner", "4 doors", "5 seats", "2023 March")
方法1:基础R实现(无需额外安装包)
用基础R内置的grepl()函数做字符串匹配,返回逻辑索引后取子集即可:
# 匹配包含km的元素,返回目标字符串 res <- info[grepl(pattern = "km", x = info)]
运行后res的输出结果就是你需要的"40,186 km"。
如果需要兼容大小写(比如同时匹配KM、Km等写法),可以添加ignore.case = TRUE参数:
res <- info[grepl(pattern = "km", x = info, ignore.case = TRUE)]
方法2:tidyverse生态stringr包实现(写法更简洁)
如果你常用tidyverse系列工具,可以用stringr包的str_subset()函数直接筛选匹配结果:
# 先加载包,未安装的话先运行install.packages("stringr") library(stringr) res <- str_subset(string = info, pattern = "km")
内容的提问来源于stack exchange,提问作者Vinnie Gaul
相关产品推荐
相关产品推荐

