我有一个数据帧,看起来像这样之间的空间只有行:过滤器[R数据帧以包括两个字符串
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
您可以简化代码,使其更具可读性。首先,不是'if'语句,而是直接赋值:'booleans [i] < - length(tmp)== 2'。其次,没有理由将'booleans'向量绑定到数据框,只需在函数的最后一个'return'行中删除'res $'。然后,您不需要通过分配NULL来删除该列。第三,作为一个单独的问题,您可以创建'booleans'向量,使其具有正确的长度,因为您知道它将成长为'数据'元素。 –
@MatthewLundberg感谢代码审查 - 我很快就写了这段代码来获得答案(我正在使用它来尝试成为一个更好的程序员),但是我后来看到它,并注意到很多不必要的操作。我会用你的建议。我非常感谢你的时间! –