如果字符串的格式与 R 数据帧中的正常格式不同,如何从字符串中提取数字?
如果字符串的格式与R数据帧中的正常格式不同,要从字符串中提取数字,我们可以按照以下步骤操作-
首先,创建一个数据框。
然后,使用gsub函数和as.numeric函数来提取数字。
示例
创建数据框
让我们创建一个数据框,如下所示-
x<- sample(c("grp_12","grp_01","grp_05","grp_03","grp_04","grp_09","grp_10","grp_11","grp_02","grp_06","grp_07","grp_08"),25,replace=TRUE) df<-data.frame(x) df输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
x 1 grp_07 2 grp_06 3 grp_01 4 grp_03 5 grp_04 6 grp_03 7 grp_09 8 grp_07 9 grp_03 10 grp_11 11 grp_09 12 grp_01 13 grp_08 14 grp_03 15 grp_11 16 grp_05 17 grp_11 18 grp_05 19 grp_11 20 grp_05 21 grp_06 22 grp_07 23 grp_02 24 grp_10 25 grp_03
提取数字
使用gsub函数和as.numeric函数从数据框df的x列中提取数字-
x<- sample(c("grp_12","grp_01","grp_05","grp_03","grp_04","grp_09","grp_10","grp_11","grp_02","grp_06","grp_07","grp_08"),25,replace=TRUE) df<-data.frame(x) df$x_numeric<-as.numeric(gsub("^[^_]*_|^*$","",x)) df输出结果
x x_numeric 1 grp_07 7 2 grp_06 6 3 grp_01 1 4 grp_03 3 5 grp_04 4 6 grp_03 3 7 grp_09 9 8 grp_07 7 9 grp_03 3 10 grp_11 11 11 grp_09 9 12 grp_01 1 13 grp_08 8 14 grp_03 3 15 grp_11 11 16 grp_05 5 17 grp_11 11 18 grp_05 5 19 grp_11 11 20 grp_05 5 21 grp_06 6 22 grp_07 7 23 grp_02 2 24 grp_10 10 25 grp_03 3