如果字符串的格式与 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(this output will vary on your system due to randomization)-
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