R dplyr 包含任何字符值的子集行

Ed_*_*avy 2 r dplyr

我有一个数据集,其中特定列(x在本例中)具有带有字符值的某些行。

如何对包含任何字符值的这些行进行切片/子集化以进行数据探索?

请注意,我不想对行中的所有字符进行硬编码来告诉代码这些行是否具有这些字符,然后对这些行进行子集化。因为我的原始数据集很大,所以该列可以在任意数量的行中包含任何字符值。

因此,这就是查看该列中具有字符值的所有行的目的

示例数据和代码:

library(dplyr)

x = c("1000", "1001", "1003", "14484R", "1004", "1005",  "12241alternet", "12634TAB", "12644R", "END", NA, NA)
y = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

df = data.frame(x, y)

# subset/slice rows in column x that contain any character value 
Run Code Online (Sandbox Code Playgroud)

sah*_*ahn 5

使用以下方法捕获任何字母的一种选择[:alpha:]

library(dplyr)
library(stringr)

df %>% filter(str_detect(x, "[:alpha:]"))
              x  y
1        14484R  4
2 12241alternet  7
3      12634TAB  8
4        12644R  9
5           END 10
Run Code Online (Sandbox Code Playgroud)

或者因为你说你的数据集很大:

library(data.table)
setDT(df)
df[str_detect(x, "[:alpha:]")]
Run Code Online (Sandbox Code Playgroud)