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

Mac*_*sso 3 r stringr dplyr

如何过滤以 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))

Run Code Online (Sandbox Code Playgroud)

所需输出

  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.
Run Code Online (Sandbox Code Playgroud)

r2e*_*ans 5

首先,[A-z]与 不同[A-Za-z],您需要更加小心字符类。(请参阅正则表达式 [Az] 和 [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.
Run Code Online (Sandbox Code Playgroud)

grepl(加上之前关于vs 的评论grep。)