0
考慮輸入c("foo 1", "bar 2", "baz")
。我想把它變成c(1,2,NA)
(基本上從每個字符串中提取數字,或者如果不存在,則將其變爲NA
)。我第一遍看起來是這樣的:R提取數字,同時留空白
funNums = as.numeric(
regmatches(x$Fun,
regexpr('\\d+', x$Fun, perl = T)))
其中x$Fun
是我的輸入向量。我從中得到的輸出是c(1,2)
,因爲regmatches
丟掉了不匹配的東西。我怎樣才能得到它包括NA
?
爲了避免「潛在的問題因爲'as.numeric'忽略尾隨和前導空格,因此「1 pass 2」變成12可以使用一個模式,它留下了''([^ [:digit:]] *)「中的空格。 –
@Dwin - 非常聰明。 '「1到2」'然後變成'NA'。 –
並進一步思考我懷疑需要parens。 –