首页 > 解决方案 > 如何从R中的字符中提取数字

问题描述

我有一列的值是 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 位数字,我需要 substr 3 和 4 值。

标签: rextract

解决方案


您可以使用正则表达式删除所有非数字字符。这可以使用不同的功能来完成。我喜欢使用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)

推荐阅读