如何在 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] 并忽略 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.
(加上之前关于 grepl
与 grep
的评论。)
关于r - 过滤 R 中以任何拉丁字母开头的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70158912/