如果字符串的格式与 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(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

猜你喜欢