如何检测R语言DataFrame指定列中的值是否包含空格?
检测DataFrame列中是否包含空格并生成标记列(R语言)
现有如下R代码创建的DataFrame:
asd <- data.frame(a = c("new ", "Old"), b = c("Cta", "df"))
需要新增一列spaceInCola,标记每行a列的值是否包含空格,最终输出如下:
a b spaceInCola 1 new Cta TRUE 2 Old df FALSE
实现方法
方法1:基础R grepl 函数
这是最直接的原生解决方案,利用grepl返回逻辑值向量的特性,直接为DataFrame添加新列:
asd$spaceInCola <- grepl(" ", asd$a)
grepl(" ", asd$a)会逐行检查a列的元素是否包含空格,返回对应的TRUE/FALSE结果,直接赋值给新列即可。
方法2:tidyverse 管道式操作
如果你习惯使用tidyverse生态的工具,可以结合dplyr::mutate和stringr::str_detect实现:
library(dplyr) library(stringr) asd <- asd %>% mutate(spaceInCola = str_detect(a, " "))
str_detect的作用和grepl一致,在管道流中更贴合tidyverse的代码风格。
执行上述任意一种方法后,查看asd即可得到预期的结果。
内容的提问来源于stack exchange,提问作者user11740857
相关产品推荐
相关产品推荐

