r - 过滤 R 中以任何拉丁字母开头的所有行

标签 r dplyr stringr

如何在 R 中过滤所有以任何拉丁字母开头的行

无效的示例代码

library(dplyr)

df <- data.frame( marks = c(20.1, 30.2, 40.3, 50.4, 60.5),
                  
                  age = c(21:25),
                  
                  roles = c('Software Eng.', 'Software Dev', 
                            'Data Analyst', 'Data Eng.',
                            '5Sigma'))

df %>% filter(grep("[A-z]", roles))

期望的输出

  marks age         roles
1  20.1  21 Software Eng.
2  30.2  22  Software Dev
3  40.3  23  Data Analyst
4  50.4  24     Data Eng.

最佳答案

首先,[A-z][A-Za-z] 不同,您需要更加小心字符类。 (参见 Difference between regex [A-z] and [a-zA-Z] 并忽略 部分。)

其次,field: 从哪里来?这样做:

df %>%
  filter(grepl("^[A-Za-z]", roles))
#   marks age         roles
# 1  20.1  21 Software Eng.
# 2  30.2  22  Software Dev
# 3  40.3  23  Data Analyst
# 4  50.4  24     Data Eng.

(加上之前关于 greplgrep 的评论。)

关于r - 过滤 R 中以任何拉丁字母开头的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70158912/

相关文章:

r - 如何从R中的矩阵列表中的每个矩阵中删除列?

c++ - 在 windows 下构建(和运行)RInside 示例

r - 有关系时如何汇总数据集中的前 3 个最高值

r - dplyr 使用 t.test 汇总多个列

r - 为什么在执行 map(str_match_all()) 后需要将数据帧索引到 map() ?

r - 按组使用 cov.wt 和 data.table 的加权相关性

r - 函数调用向量 v(f(0), f(1), ..., f(2))

r - 如何将数据随机分成三个相等的大小?

r - 使用模式进行 Matlab 字符串操作的 R stringr 替代方案是什么?

r - 在 R 中使用 AND 和 OR bool 运算符检测字符串