从矢量中提取数字元素
问题描述:
我有一个具有数字和非数字元素的矢量'a'。我想从矢量中提取数字元素并构建一个新的矢量。我该怎么做呢?从矢量中提取数字元素
所以,如果一个是:
a = c(15, 3, 44, "hello", 4, "NA")
我希望得到一个向量有四个要素,即元素15 3 44 4
答
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
成语使得读者非常清楚地发生了什么,这是理想的,因为你最终真正为人类理解编程(计算理解是次要目标)。
你的问题现在回答了吗?比请标记问题已解决。 –