从R中的列表中删除包含任何字母字符的元素

时间:2019-02-09 02:51:06

标签: r

我有包含以下元素的列表:

c("1",  "2", "3", "abc",  "1as")

如何从列表中删除包含字母的元素?例如,对于上面的示例,我希望将(“ 1”“ 2”“ 3”)作为最终列表,但是1,2,3在这种情况下都是字符串变量。

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)