r - 使用多个分隔符拆分字符串 R
问题描述
之前在这里问过类似的问题,但这些符号让我很困惑。这是我拥有的示例数据集。
id <- c(1,2)
form <- c("AA-BB-c2C-Dat-D-SP18-CC", "AA::B2S::DD::C::SP17::GG")
data <- data.frame(id, form)
> data
id form
1 1 AA-BB-c2C-Dat-D-SP18-CC
2 2 AA::B2S::DD::C::SP17::GG
第一行有 7 个用“-”分隔的对象,第二行有 6 个用“::”分隔的对象。我想获取倒数第二个对象(SP18 和 SP19)的数值,如下所示。
> data
id form sub.form
1 1 AA-BB-c2C-Dat-D-SP18-CC 18
2 2 AA::B2S::DD::C::SP17::GG 17
您有什么想法和一些有用的材料供我阅读有关此字符串文档的内容吗?
谢谢!
解决方案
我们可以尝试sub
在此处使用基本 R 选项:
data$sub.form <- sub("^.*\\bSP(\\d+)\\b.*$", "\\1", data$form)
data
id form sub.form
1 1 AA-BB-c2C-Dat-D-SP18-CC 18
2 2 AA::B2S::DD::C::SP17::GG 17
推荐阅读
- excel - 为什么 Visual Basic 编辑器将科学记数法转换为以 # 结尾的数字?
- laravel - laravel SAML 获取 NameId 值
- javascript - 您如何使用 Jest 模拟 Firebase Firestore 方法?
- node.js - 在这里使用@ts-ignore 好吗?
- javascript - ionicon 存在于 DOM 中但不可见(宽度为 0px)
- javascript - 动态 Javascript 地图合并
- python - 在 Ubuntu 上更改 Python 和 DJango 文件
- react-native - React-Native 中样式扩展语法和数组语法的区别
- angular - 可观察对象是首选吗?
- android - 以编程方式在 LinearLayout 中居中 CardView