如何从 r 中的字符串中提取数字(附示例)


您可以使用以下方法从 R 中的字符串中提取数字:

方法一:使用基数R提取字符串编号

 as. numeric (gsub(" \\D ", "", df$my_column))

方法二:使用readr包提取字符串数字

 library (readr)

parse_number(df$my_column)

本教程通过以下数据框解释了如何在实践中使用每种方法:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard23', 'Guard14', '2Forward',
                            'Guard25', '6Forward', 'Center99'))

#view data frame
df

  team position
1A Guard23
2A Guard14
3 A 2Forward
4 B Guard25
5 B 6Forward
6 B Center99

示例 1:使用基数 R 从字符串中提取数字

以下代码显示了如何从数据框的位置列中的每个字符串中提取数字:

 #extract number from each string in 'position' column
as. numeric (gsub(" \\D ", "", df$position))

[1] 23 14 2 25 6 99

请注意,数值是从位置列中的每个字符串中提取的。

注意gsub()函数只是将字符串中的所有非数字 ( \\D ) 替换为空格。这具有仅从字符串中提取数字的效果。

如果需要,您还可以将这些数值存储在数据框中的新列中:

 #create new column that contains numbers from each string in 'position' column
df$num <- as. numeric (gsub(" \\D ", "", df$position))

#view updated data frame
df

  team position number
1A Guard23 23
2A Guard14 14
3 A 2Forward 2
4 B Guard25 25
5 B 6Forward 6
6 B Center99 99

示例 2:使用 Reader 包从字符串中提取数字

以下代码演示了如何使用readr包中的parse_number()函数从数据帧的位置列中的每个字符串中提取数字:

 library (readr)

#extract number from each string in 'position' column
parse_number(df$position)

[1] 23 14 2 25 6 99

请注意,数值是从位置列中的每个字符串中提取的。

这对应于在基础 R 中使用gsub()函数的结果。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中选择包含特定字符串的列
如何从R中的字符串中删除字符
如何在R中查找字符串中的字符位置

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注