我有包含以下元素的列表:
c("1", "2", "3", "abc", "1as")
如何从列表中删除包含字母的元素?例如,对于上面的示例,我希望将(“ 1”“ 2”“ 3”)作为最终列表,但是1,2,3在这种情况下都是字符串变量。
答案 0 :(得分:2)
这里是
a <- c("1", "2", "3", "abc", "1as")
a[!grepl("[[:alpha:]]", a)]
# [1] "1" "2" "3"
答案 1 :(得分:1)
这是一种使用grep
来标识带有[:alpha:]条目并将其取反的条目的解决方案:
x <- c("1", "2", "3", "abc", "1as")
x[-grep("[:alpha:]", x)]
#> [1] "1" "2" "3"
由reprex package(v0.2.1)于2019-02-08创建
答案 2 :(得分:1)
稍长一些,但是您不需要使用grep来解决问题。 您可以简单地进行转换,而那些转换后的(不是NA)就是您想要保留的:
test<-c("1","2","3","abc","1as")
test_num<-as.numeric(test)
test_num_clean<-test_num[!is.na(test_num)]
如果您喜欢字符串:
test_str<-as.character(test_num_clean)