如何从R中的字符中提取数字

问题描述 投票:0回答:2

我有一列值C(1),C(2),... C(30),C(31),我只需要提取数字。

x<-as.character(c("C(1)", "C(2)", "C(3)"))

a<-as.numeric(substr(x,3,3))

substr()没有帮助,因为对于2位数字,我需要将3和4值相减。

r extract
2个回答
0
投票

您可以使用正则表达式删除所有非数字字符。可以使用不同的功能来完成。我喜欢使用stringr包处理字符:

library(stringr)

x <- as.character(c("C(1)", "C(2)", "C(3)"))

# Replace all non numerical characters to a empty space
y <- str_replace_all(x, "[^0-9]", "" )

a <- as.numeric(y)

0
投票

我认为最简单,最快的方法是使用grep和正则表达式来匹配数字:

x<-as.character(c("C(1)", "C(2)", "C(3)"))
vec <- grep(pattern="[[:digit:]]", x=x)
vec
# Output:
1 2 3
© www.soinside.com 2019 - 2024. All rights reserved.