我有一個具有數字和非數字元素的矢量'a'。我想從矢量中提取數字元素並構建一個新的矢量。我該怎麼做呢?從矢量中提取數字元素
所以,如果一個是:
a = c(15, 3, 44, "hello", 4, "NA")
我希望得到一個向量有四個要素,即元素15 3 44 4
我有一個具有數字和非數字元素的矢量'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"
你知道你和我的帖子之間的不同/優勢嗎? –
隨着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
成語使得讀者非常清楚地發生了什麼,這是理想的,因爲你最終真正爲人類理解編程(計算理解是次要目標)。
你的問題現在回答了嗎?比請標記問題已解決。 –