我有一个如下所示的数据框:
v1 <- c('abies balsamifera','some trees','pizza','i like tacos','pinus taeda')
v2 <- c(1,2,3,4,5)
data <- data.frame(v1,v2)
v1 v2
1 abies balsamifera 1
2 some trees 2
3 pizza 3
4 i like tacos 4
5 pinus taeda 5
我想对数据帧进行子集化,仅包括v1
中的字符串有两个用空格分隔的单词的行。我想排除只有一个单词的行,或其他包含三个单词的行。结果数据框如下所示:
v1 v2
1 abies balsamifera 1
2 some trees 2
5 pinus taeda 5
答案 0 :(得分:7)
您正在寻找一个由一个或多个单词字符,空格以及一个或多个单词字符组成的字符串。
这是一个描述上述陈述的正则表达式:
> grepl('^\\w+\\s\\w+$', v1)
[1] TRUE TRUE FALSE FALSE TRUE
您可以使用此逻辑向量索引数据框。