Столбец может иметь только числовые или буквенно-цифровые значения R - PullRequest
0 голосов
/ 31 марта 2020

Столбцы могут быть только числовыми или буквенно-цифровыми значениями (т. Е. Аббревиатура, за которой следуют цифры). Однако некоторые из этих столбцов имеют символы и даты, которых там быть не должно. Я хочу получить желаемый вывод, в котором все значения, которые не являются буквенно-цифровыми или числовыми, помечаются как «1».

т.е.

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

Я ищу код, который не указан c к бывшим данным выше, довольно обобщенным, чтобы применить к нескольким столбцам.

Отредактировано: уточнение

1 Ответ

2 голосов
/ 31 марта 2020

Мы можем использовать 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 значение, которое не является альфа-цифрой c в столбце

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

данные

v1 <- c(1234, "ABC1234", "#", "12/13/17", "$")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...