在R语言中拆分含6字符ID的列并生成多行数据
数据拆分需求及示例
需求说明
现有数据集包含c1、c2、c3及其他列,其中c1、c2、c3列的单元格内存在6字符ID及后续关联内容,需按以下规则拆分:
- 每个ID及其对应内容拆分至新行,同时复制其他列的对应数据
- 拆分操作在遇到下一个6字符ID时停止,重复执行该逻辑
- 部分单元格仅包含1个ID,无需拆分
- 特殊场景:单元格内存在无标记括号内容时,需拆分为更多行
普通场景示例
原始数据
R1 <- c("PDFHRE; QZ4SDG", "PDFHRE [1103-1122]; QZ4SDG [1101-1120]", "PDFHRE 2xPhospho [S1106(100); T/S]; QZ4SDG 2xPhospho [S1104(100); T/S]", "blah1")
期望输出
R1 <- c("PDFHRE", "PDFHRE [1103-1122]", "PDFHRE 2xPhospho [S1106(100); T/S],", "blah1") R2 <- c("QZ4SDG", "QZ4SDG [1101-1120]", "QZ4SDG 2xPhospho [S1104(100); T/S],", "blah1")
特殊场景示例
原始数据
R11 <- c("Qxsdf8; QSFDGJ", "Qxsdf8 [946-956]; [957-967]; QSFDGJ [912-922]", "Qxsdf8 1xPhospho [S948(100)]; 1xPhospho [S959(100)]; QSFDGJ 1xPhospho [S914(100)]", "blah2")
期望输出
R11 <- c("Qxsdf8", "Qxsdf8 [946-956]", "Qxsdf8 1xPhospho [S948(100)]", "blah2") R12 <- c("Qxsdf8", "Qxsdf8 [957-967]", "Qxsdf8 1xPhospho [S959(100)]", "blah2") R13 <- c("QSFDGJ", "QSFDGJ [912-922]", "QSFDGJ 1xPhospho [S914(100)]", "blah2")
内容的提问来源于stack exchange,提问作者John H
相关产品推荐
相关产品推荐

