R:删除向量的数量

Ani*_*ita 3 numbers r vector

我有以下矢量:

codes <- c("3WC8" , "456" , "lev", "1")
Run Code Online (Sandbox Code Playgroud)

我想删除"456""1",但我不希望删除的号码"3WC8".

Ric*_*ven 8

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

codes[nzchar(gsub("[0-9]+", "", codes))]
# [1] "3WC8" "lev" 
Run Code Online (Sandbox Code Playgroud)


rns*_*nso 5

尝试:

> codes[is.na(sapply(codes, as.numeric))]
[1] "3WC8" "lev" 
Run Code Online (Sandbox Code Playgroud)

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

> codes[is.na(as.numeric(codes))]
[1] "3WC8" "lev" 
Run Code Online (Sandbox Code Playgroud)

忽略两个代码中的警告。