R:删除向量的数量

时间:2014-10-15 15:58:13

标签: r vector numbers

我有以下矢量:

codes <- c("3WC8" , "456" , "lev", "1")

我想删除"456""1",但我不想删除"3WC8"的数字。

3 个答案:

答案 0 :(得分:8)

您可以使用gsub删除每个元素中的所有数字,然后使用nzchar来检查/保留非零字符元素。

codes[nzchar(gsub("[0-9]+", "", codes))]
# [1] "3WC8" "lev" 

答案 1 :(得分:5)

尝试:

> codes[is.na(sapply(codes, as.numeric))]
[1] "3WC8" "lev" 

或简单地(正如@akrun在评论中所建议的那样):

> codes[is.na(as.numeric(codes))]
[1] "3WC8" "lev" 

忽略两个代码中的警告。

答案 2 :(得分:3)

或者你可以这样做:

grep("^\\d+$", codes, value=TRUE, invert=TRUE)
#[1] "3WC8" "lev"