如何过滤以 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)
首先,[A-z]与 不同[A-Za-z],您需要更加小心字符类。(请参阅正则表达式 [Az] 和 [a-zA-Z] 之间的差异并忽略java部分。)
第二,从哪里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。)