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