早上好,

我有一个数据框,其中一列的观察结果如下所示:

row1: 28316496(15)|28943784(8)|28579919(7)

row2: 29343898(1)

我想创建一个新的列,它将提取括号中not的数字,创建一个列表,然后附加所有这些数字以创建一个包含所有这些数字的列表.

最后说的不一样,I would like to end up with the following list:

28316496;28943784;28579919;29343898

它也可以是任何其他类似的对象,我只是对获得所有这些数字并将它们与另一个数据集匹配感兴趣.

我try 使用str_extract_all来提取数字,但我在理解模式参数时遇到了困难.例如,我曾try 过:

STR_EXTRACT_ALL("28316496(15)|28943784(8)","\d+(\d)")

Gsub("\s*\(.*","","28316496(15)|28943784(8)")

但它并没有返回我想要的东西.

Any idea for extracting the number outside the brackets 和 create a giant list out of that?

非常感谢!

推荐答案

base R中,我们可以使用gsub删除(,后跟数字和),然后使用read.table读取数据帧中的数据

read.table(text = gsub("\\(\\d+\\)", "", df1$col1), 
    header = FALSE, sep = "|", fill = TRUE)
        V1       V2       V3
1 28316496 28943784 28579919
2 29343898       NA       NA

或者使用str_extract,使用正则表达式查找

library(stringr)
str_extract_all(df1$col1, "\\d+(?=\\()")
[[1]]
[1] "28316496" "28943784" "28579919"

[[2]]
[1] "29343898"

数据

df1 <- structure(list(col1 = c("28316496(15)|28943784(8)|28579919(7)", 
"29343898(1)")), class = "数据.frame", row.names = c(NA, -2L))

R相关问答推荐

如何以编程方式将X轴勾号上的希腊符号合并到R图中?

将带有范围的字符串转换为R中的数字载体

高质量地将R格式的图表从Word中输出

使用gggplot 2在R中重新调整面板和y轴文本大小

使用R中的Shapetime裁剪格栅文件

抖动点与嵌套类别变量箱形图的位置不对齐

通过使用str_detect对具有相似字符串的组进行分组

为什么观察不会被无功值变化触发?

未识别时区

使用外部文件分配变量名及其值

在嵌套列表中查找元素路径的最佳方法

在R gggplot2中是否有一种方法将绘图轴转换成连续的 colored颜色 尺度?

如何通过判断数据框的一列来压缩另一列?

根据现有列的名称和字符串的存在进行变异以创建多个新列

您是否可以折叠R中的重复行,同时保留基于所选列的值?

以相同的方式对每个表进行排序

根据约束随机填充向量的元素

将具有坐标列表列的三角形转换为多个多边形

如果极点中存在部分匹配,则替换整个字符串

将边列表转换为路径长度列表