Artmanin Asked:2022-01-16 03:21:44 +0000 UTC2022-01-16 03:21:44 +0000 UTC 2022-01-16 03:21:44 +0000 UTC 通过R中的正则表达式过滤数据框 772 有一个数据框 ID 回答 一 线 2 34234 3 四 不适用 我需要选择一个没有空行的数据框 3。我正在尝试,dataframe %>% filter(answer==".") 但我知道这是无稽之谈,请求不正确。如何正确过滤?正则表达式或数据格式中的错误answer=="."? r 1 个回答 Voted Best Answer aleksandr barakin 2022-01-16T13:52:10Z2022-01-16T13:52:10Z 可以使用基本grepl()包中的函数指定正则表达式。 数据: > d <- data.frame(id=c(1:4),answer=c('строка','34234','','NA')) > d id answer 1 1 строка 2 2 34234 3 3 4 4 NA 筛选: > d[grepl('.', d$answer),] id answer 1 1 строка 2 2 34234 4 4 NA 如果您需要dplyrfilter()包中的功能,那么您可以这样做: > filter(d, grepl('.', answer)) id answer 1 1 строка 2 2 34234 3 4 NA 或者像这样: > d %>% filter(grepl('.', answer)) id answer 1 1 строка 2 2 34234 3 4 NA 另一个选项是str_detect()stringr包中的函数: > d[str_detect(d$answer, '.'),] id answer 1 1 строка 2 2 34234 4 4 NA > filter(d, str_detect(answer, '.')) id answer 1 1 строка 2 2 34234 3 4 NA > d %>% filter(str_detect(answer, '.')) id answer 1 1 строка 2 2 34234 3 4 NA
可以使用基本
grepl()包中的函数指定正则表达式。数据:
筛选:
如果您需要dplyr
filter()包中的功能,那么您可以这样做:或者像这样:
另一个选项是
str_detect()stringr包中的函数: