R: 基于元素长度删除向量中的元素

3

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

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

例如,我想要删除所有长度小于5的df元素,那么输出结果应该是:
> df
[1]"fweafewwf"        "aewfawefwef"     "awefWEfawefawef"

谢谢!

2个回答

8

只需使用nchar

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

1
由于nchar在处理NA时表现奇怪:
nchar(NA)
## [1] 2

我建议使用stringi包中的stri_length函数。

require(stringi)
df[stri_length(df)>5]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接