从矢量中提取数字元素

问题描述:

我有一个具有数字和非数字元素的矢量'a'。我想从矢量中提取数字元素并构建一个新的矢量。我该怎么做呢?从矢量中提取数字元素

所以,如果一个是:

a = c(15, 3, 44, "hello", 4, "NA") 

我希望得到一个向量有四个要素,即元素15 3 44 4

+0

你的问题现在回答了吗?比请标记问题已解决。 –

b = as.numeric(a) 
b = b[!is.na(b)] 
b 

a[grep('[0-9]+',a)] 
#[1] "15" "3" "44" "4" 
+0

你知道你和我的帖子之间的不同/优势吗? –

随着purrr

library(purrr) 

a <- c(15, 3, 44, "hello", 4, "NA") 

as.numeric(a) %>% discard(is.na) 

默认情况下,R将要转换c(15, 3, 44, "hello", 4, "NA")成一个字符向量(因为你有一个混合的数字和字符串)。所以,你必须首先进行转换,并删除生成的NA(你也应该看到一条警告信息)。 purrr成语使得读者非常清楚地发生了什么,这是理想的,因为你最终真正为人类理解编程(计算理解是次要目标)。