r - 如何从混合字符串中提取数字
问题描述
我有一个字符串字符向量,可以是整数,也可以是“Pn[ab]?”形式。
> figc
[1] "3" "2" "7" "8" "10" "3" "4" "6" "P3a" "P3b" "5" "P9"
[13] "1" "13" "15" "18" "21" "22" "5" "6" "9" "1" "13" "14"
[25] "15"
我想将这些转换为数字,其中“P3a”的结果是 3,而“P9”的结果是 9。
我试过了:
fig <- ifelse(substr(figc, 1, 1)=="P",
as.numeric(substr(figc, 2, 1)),
as.numeric(figc))
给予:
> fig <- ifelse(substr(figc, 1, 1)=="P",
+ as.numeric(substr(figc, 2, 1)),
+ as.numeric(figc))
Warning message:
In ifelse(substr(figc, 1, 1) == "P", as.numeric(substr(figc, 2, :
NAs introduced by coercion
>
> fig
[1] 3 2 7 8 10 3 4 6 NA NA 5 NA 1 13 15 18 21 22 5 6 9 1 13 14 15
但我得到非数字的 NA。如何解决这个问题?我查看了stringr
包装,但看不到任何有助于解决这个简单问题的东西
解决方案
我们可以用parse_number
library(readr)
parse_number(figc)
[1] 3 2 7 8 10 3 4 6 3 3 5 9 1 13 15 18 21 22 5 6 9 1 13 14 15
数据
figc <- c("3", "2", "7", "8", "10", "3", "4", "6", "P3a", "P3b", "5",
"P9", "1", "13", "15", "18", "21", "22", "5", "6", "9", "1",
"13", "14", "15")
推荐阅读
- java - 如何使用 Java 通过 RestFB API 检索视频自定义标签?
- c++ - 如何计算图表中有多少有效颜色?
- php - 如何使用 PHP 删除 SOAPHeaderElement 的命名空间
- r - R中的地图回收
- performance - 商业智能数据源性能 - 大表
- python - 在 Python 中的文件之间传递变量
- python-3.x - 如何使用 keras/tensorflow 构建无监督的 CNN 模型?
- c - golang:打包一个结构
- r - 如何解决提供给连续比例和 plot$scales$clone() 的离散值:尝试应用非函数错误
- html - 如何在另一个模板 Vue.js 中插入模板标签