r - 使用 R 提取列中的值
问题描述
我有一列具有如下所示的值。
v2 <- c("[0,1]", "[4,8]", "[10, 23]")
df <- data.frame(v2, stringsAsFactors = FALSE)
如何提取第一个数字(下限)和第二个数字(上限)?并保存到最小和最大列?
谢谢!
-雪莉
解决方案
您可以strcapture
用来捕获值,并确保数据框接受numeric values
strcapture("(\\d+)\\s*,\\s*(\\d+)",v2,data.frame(Min=numeric(),Max=numeric()))
Min Max
1 0 1
2 4 8
3 10 23
或者你可以做
read.csv(text=gsub("\\[|\\]","",v2),h=F,col.names = c("Min","Max"))
Min Max
1 0 1
2 4 8
3 10 23
或者您可以extract
从 tidyr 使用:
tidyr::extract(df, v2,c("Min","Max"),"(\\d+)\\s*,\\s*(\\d+)")
Min Max
1 0 1
2 4 8
3 10 23
推荐阅读
- maven - Maven项目在没有IDE的情况下执行
- kubernetes - 用于 Kubernetes 的 Docker 镜像部署工具
- excel - Excel超链接到另一个工作表上的另一个超链接
- r - 如何获得没有重复元素的列表的所有组合?
- java - 如何将用户的 Google 帐户照片直接上传到 Firebase 存储?
- javascript - 如何更新对象数组中的单个值,然后更新状态
- c++ - 共享对象取决于代码中的符号动态链接它吗?
- javascript - 尝试查找 node express 阻塞的 cpu 代码,并希望使 express 处理程序异步以进行堆栈跟踪
- python - 如何从字符串中提取整个小数?
- json - Elm以不同格式解码json