使用 grepl 对 [:alpha:]:[:punct:] 进行数据清理
Data cleaning using grepl for [:alpha:]:[:punct:]
只是用错了grepl。需要结合 [:alpha:]: [:punct:]: 在 grepl 中查找/删除行与 [:alpha:] [:punct:]。 dput 提供的数据。需要找到 punct 和 alpha 数据以删除角色并替换为 NA 或 NaN。如何在R语言中结合grepl和[:alpha:] [:punct:]?
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")
如果打算将非数字元素转换为 NA
as.numeric(v1)
会自动将所有其他元素转换为 NA。
但是如果我们需要使用grepl()
,匹配字符串从开始(^
)到结束($
)的一个或多个数字([0-9]+
)并否定 (!
)
v1[!grepl("^[0-9]+$", v1)] <- NA
数据
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")
只是用错了grepl。需要结合 [:alpha:]: [:punct:]: 在 grepl 中查找/删除行与 [:alpha:] [:punct:]。 dput 提供的数据。需要找到 punct 和 alpha 数据以删除角色并替换为 NA 或 NaN。如何在R语言中结合grepl和[:alpha:] [:punct:]?
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")
如果打算将非数字元素转换为 NA
as.numeric(v1)
会自动将所有其他元素转换为 NA。
但是如果我们需要使用grepl()
,匹配字符串从开始(^
)到结束($
)的一个或多个数字([0-9]+
)并否定 (!
)
v1[!grepl("^[0-9]+$", v1)] <- NA
数据
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")