R:根据元素长度从向量中删除元素

时间:2014-04-17 20:06:12

标签: string r vector subset

如何根据字符数或字符串长度从字符串向量中删除元素?

df <- c("asdf","fweafewwf","af","","","aewfawefwef","awefWEfawefawef")
> df
[1] "asdf"            "fweafewwf"       "af"              ""                ""                "aewfawefwef"     "awefWEfawefawef"

例如,我可能想要删除长度小于5的df的所有元素,因此输出将为:

> df
[1]"fweafewwf"        "aewfawefwef"     "awefWEfawefawef"

谢谢!

2 个答案:

答案 0 :(得分:7)

只需使用nchar

> df[nchar(df) > 5]
[1] "fweafewwf"       "aewfawefwef"     "awefWEfawefawef"

答案 1 :(得分:1)

由于nchar对NA&#39>起作用很奇怪:

nchar(NA)
## [1] 2

我建议使用stri_length

中的stringi功能
require(stringi)
df[stri_length(df)>5]