【发布时间】:2014-06-27 08:35:31
【问题描述】:
如果我有一个向量:
Months = month.abb[1:12]
我想提取所有以字母 J 开头的月份(在本例中为 Jan、Jun 和 Jul)。
是否有通配符,如 Excel 中的 *,它列出了您搜索 J* 的向量的所有元素?
如何提取以字母“M”或“A”开头的元素。预期的输出是 Mar,May,Apr,Aug?
【问题讨论】:
标签: r extract wildcard subset contains
如果我有一个向量:
Months = month.abb[1:12]
我想提取所有以字母 J 开头的月份(在本例中为 Jan、Jun 和 Jul)。
是否有通配符,如 Excel 中的 *,它列出了您搜索 J* 的向量的所有元素?
如何提取以字母“M”或“A”开头的元素。预期的输出是 Mar,May,Apr,Aug?
【问题讨论】:
标签: r extract wildcard subset contains
试试:
grep("^J", Months,value=TRUE)
#[1] "Jan" "Jun" "Jul"
grep("^A|^M", Months,value=TRUE)
#[1] "Mar" "Apr" "May" "Aug"
【讨论】:
您会发现glob2rx 函数有助于将通配符构造转换为正则表达式:
> glob2rx("J*")
[1] "^J"
> grep(glob2rx("J*"), Months, value=TRUE)
[1] "Jan" "Jun" "Jul"
【讨论】:
如果你碰巧加载了stringr,你可以这样做:
library(stringr)
str_subset(Months, "^J")
[1] "Jan" "Jun" "Jul"
【讨论】: