b <- c("books", " ", "animals", "frogs")
#My code:
b[!grepl("^\\s+$", b)]
[1] "books" "animals" "frogs"
#Now, I am working to figure out this solution with stringr package.
str_remove_all(b, "^\\s+$")
[1] "books" "" "animals" "frogs"
Run Code Online (Sandbox Code Playgroud)
输出显示""我的新代码失败的地方。有什么解决方案可以得到像我的第一个代码一样的结果吗?
我们可以用str_subset在stringr
library(stringr)
str_subset(b, "^\\s+$", negate = TRUE)
[1] "books" "animals" "frogs"
Run Code Online (Sandbox Code Playgroud)
对应的函数grepl是str_detect
b[str_detect(b, "^\\s+$", negate = TRUE)]
[1] "books" "animals" "frogs"
Run Code Online (Sandbox Code Playgroud)
在 中base R,我们可以使用grepwithinvert = TRUE
grep("^\\s+$", b, invert = TRUE, value = TRUE)
[1] "books" "animals" "frogs"
Run Code Online (Sandbox Code Playgroud)
或者没有正则表达式trimws(删除空格 - 前导/滞后)并用于nzhcar创建用于子集化的逻辑向量
b[nzchar(trimws(b))]
[1] "books" "animals" "frogs"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |