r - 从通过重复标点字符连接的字符串的列中提取数字
问题描述
我有一列具有这样的值:
string.b.string.1.
string.b.string.2.
string.b.string.3.
string.b.string.10.
string.b.string.300.
依此类推,编号从 0 到 300
我需要从该列中提取并删除数字并将其放在另一列中,从而产生如下输出:
"Id" "Variable"
1 string.b.string
2 string.b.string
3 string.b.string
10 string.b.string
300 string.b.string
到目前为止,我对 gsub() 或 readr::parse_number() 的所有尝试都失败了,因为我只是没有得到这些 gsub() 函数的语法。我通常失败了,因为“。” 在变量中重复...
非常感谢任何帮助,谢谢!
解决方案
您可以使用tidyr::extract
:
tidyr::extract(df, V1, c('Variable', 'Id'), '(.*?)(\\d+)', convert = TRUE)
# Variable Id
#1 string.b.string. 1
#2 string.b.string. 2
#3 string.b.string. 3
#4 string.b.string. 10
#5 string.b.string. 300
数据
df <- structure(list(V1 = c("string.b.string.1.", "string.b.string.2.",
"string.b.string.3.", "string.b.string.10.", "string.b.string.300."
)), class = "data.frame", row.names = c(NA, -5L))
推荐阅读
- java - 访问常量接口中定义的字符串的值
- objective-c - NSMutableDictionary 现在是否将数据截断为字符串或添加省略号?看来,这里
- python - 如何在 google-colab 中使用 Librispeech 360h 数据集?
- wordpress - 如何在 litespeed 上预加载缓存?
- mongodb - 如何在 mongoc(Mongodb 的 C 库)中为 updateOne() 调用创建一个数组?
- python - Python:用一维数组中的值替换用索引填充的二维numpy数组
- django - Django 密码字段自定义类
- docker - docker purge/clean data 是做什么的?
- pandas - Pandas - 是否可以将数据框列标签永久更改为默认列号。数据框至少有 40 列
- css - 添加类和悬停效果的不同转换延迟