R 删除包含“垃圾数据”的行

R 删除包含“垃圾数据”的行,r,R,有没有办法删除包含“垃圾”数据的行?在这种情况下,垃圾数据将被定义为具有标点符号、符号或字母。因此,一旦垃圾数据被删除,剩下的唯一数据应该是那些数字数据 test<-c(12,123,2435,1231,121,'a!12','12fb','gr32#') x<-data.frame(test) 您可以将数据转换为数字,然后删除NA值 资料 您可以将数据转换为数字,然后删除NA值 资料 我们可以使用正则表达式在过滤器中只选择从开始“^”到结束“$”的数字[0-9]+,然后根据需要转

有没有办法删除包含“垃圾”数据的行?在这种情况下,垃圾数据将被定义为具有标点符号、符号或字母。因此,一旦垃圾数据被删除,剩下的唯一数据应该是那些数字数据

test<-c(12,123,2435,1231,121,'a!12','12fb','gr32#')
x<-data.frame(test)

您可以将数据转换为数字,然后删除NA值

资料


您可以将数据转换为数字,然后删除NA值

资料


我们可以使用正则表达式在过滤器中只选择从开始“^”到结束“$”的数字[0-9]+,然后根据需要转换为数字

library(dplyr)
library(stringr)
x %>% 
   filter(str_detect(test, "^[0-9]+$"))
# test
#1   12
#2  123
#3 2435
#4 1231
#5  121
或使用基R中的子集和grepl


我们可以使用正则表达式在过滤器中只选择从开始“^”到结束“$”的数字[0-9]+,然后根据需要转换为数字

library(dplyr)
library(stringr)
x %>% 
   filter(str_detect(test, "^[0-9]+$"))
# test
#1   12
#2  123
#3 2435
#4 1231
#5  121
或使用基R中的子集和grepl


在这种情况下,您可以在测试时使用as.numeric,然后过滤掉NAS。在这种情况下,您可以在测试时使用as.numeric,然后过滤掉NAS。如果数据框中有多个列,其中一些行包含垃圾数据,该怎么办?因此,如果一行的第一列是“clean”,而同一行的下一列有“junk”数据,那么由于第二列的原因,整行将被删除column@ElliotTan. 在这种情况下,您可以执行x%>%filter\u atvarscolNms,all\u varsstr\u detect.,^[0-9]+$。或者使用base R,i1,如果数据框中有多个列,其中一些行包含垃圾数据,该怎么办?因此,如果一行的第一列是“clean”,而同一行的下一列有“junk”数据,那么由于第二列的原因,整行将被删除column@ElliotTan. 在这种情况下,您可以执行x%>%filter\u atvarscolNms,all\u varsstr\u detect.,^[0-9]+$。或者使用基R,i1
x <- data.frame(test, stringsAsFactors = FALSE)
library(dplyr)
library(stringr)
x %>% 
   filter(str_detect(test, "^[0-9]+$"))
# test
#1   12
#2  123
#3 2435
#4 1231
#5  121
subset(x, grepl("^[0-9]+$", test))