Очистка данных с использованием grepl для [: alpha:]: [: punct:] - PullRequest
1 голос
/ 11 апреля 2019

просто неправильно использовать grepl. необходимо объединить [: alpha:]: [: punct:]: в grepl для поиска / удаления строк с [: alpha:] [: punct:]. данные dput предоставлены. нужно найти точечные и альфа-данные, чтобы удалить роли и заменить на NA или NaN. как объединить grepl с [: alpha:] [: punct:] на языке R?

grepl("[:alpha:]:[:punct:]:",df$Incoming.Examinations)
dput(df$Incoming.Examinations)

dput(abberville_LA$Incoming.Examinations)
c("698", "xx?*&?/..", "1934", "2294", "962", "724", "4978", 
"99999999", "4841", "Closed for Holidays", "*", "775", "634", "1276", "1320", 
"3455", "886", "1973", "2739", "311", "999999999", "939", "545", 
"3946", "2239", "1041", "411", "3258", "entered by J.f. williams", 
"1115", "*", "4729", "5008", "*", "*", "1011", "1065", "2262", 
"3459", "596", "776", "1866", "5000", "1578", "393", "*", "*", 
"875", "2772", "997", "664", "680", "4351", "1205", "732")

1 Ответ

1 голос
/ 11 апреля 2019

Если предполагается преобразовать нечисловые элементы в NA

as.numeric(v1)

автоматически преобразует все остальные элементы в NA.

Но если нам нужно использовать grepl(),соответствует одной или нескольким цифрам ([0-9]+) от начала (^) до конца ($) строки и отрицание (!)

v1[!grepl("^[0-9]+$", v1)] <- NA

data

v1 <- c("698", "xx?*&?/..", "1934", "2294", "962", "724", "4978", "99999999", 
"4841", "Closed for Holidays", "*", "775", "634", "1276", "1320", 
"3455", "886", "1973", "2739", "311", "999999999", "939", "545", 
"3946", "2239", "1041", "411", "3258", "entered by J.f. williams", 
"1115", "*", "4729", "5008", "*", "*", "1011", "1065", "2262", 
"3459", "596", "776", "1866", "5000", "1578", "393", "*", "*", 
"875", "2772", "997", "664", "680", "4351", "1205", "732")
...