列只能是数字或字母数字值 R

Column can only be numerical or alphanumerical values R

列只能是数字或字母数字值(即首字母缩写词后跟数字)。但是,这些列中有几个包含不应该出现的符号和日期。我想要所需的输出,其中所有不是字母数字或数字的值都被标记为“1”。

1234           0
ABC1234        0
#              1
12/13/17       1
$              1
ABC            1

我正在寻找不特定于上述 ex 数据的代码,而是泛化为适用于多个列的代码。

已编辑:澄清

我们可以使用 grepl 创建一个可以强制转换为二进制的逻辑输出

+(grepl("[^[:alnum:]]", v1))
#[1] 0 0 1 1 1

如果需要是字母加数字

+(!grepl("^[A-Za-z]*\d+$", v1))
#[1] 0 0 1 1 1

如果这是检查每一列

df1[] <- lapply(df1, function(x) +(grepl("[^[:alnum:]]", x)))

如果目的是在列中查找 any 不是字母数字的值

v2 <-  sapply(df1, function(x) any(grepl("[^[:alnum:]]", x)))

数据

v1 <- c(1234, "ABC1234", "#", "12/13/17", "$")