2016-10-02 110 views
-3

我有一個具有數字和非數字元素的矢量'a'。我想從矢量中提取數字元素並構建一個新的矢量。我該怎麼做呢?從矢量中提取數字元素

所以,如果一個是:

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

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

+0

你的問題現在回答了嗎?比請標記問題已解決。 –

回答

2
b = as.numeric(a) 
b = b[!is.na(b)] 
b 
1
a[grep('[0-9]+',a)] 
#[1] "15" "3" "44" "4" 
+0

你知道你和我的帖子之間的不同/優勢嗎? –

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成語使得讀者非常清楚地發生了什麼,這是理想的,因爲你最終真正爲人類理解編程(計算理解是次要目標)。