我有以下矢量:
codes <- c("3WC8" , "456" , "lev", "1")
我想删除"456"
和"1"
,但我不想删除"3WC8"
的数字。
答案 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"