从每一行中提取相似的数字,形成R中的新数据帧

从每一行中提取相似的数字,形成R中的新数据帧,r,R,我有一个如下所示的数据框: 矩阵。名字 Per1_23_3_Map1_Ext_5 Per1_24_2_Map2_Ext_5 Per2_23_3_Map1_Ext_5 Per2_25_1_Map2_Ext_5 很多行都是这样。有什么方法可以使用R代码提取每行中的23、24或25,并将它们放入各自的数据帧中?在任何特定行中是23、24还是25都是随机的 我们可以使用stru提取 看到了吗?substr。例如,尝试substrPer1\u 23\u 3\u Map1\u Ext\u 5,1,3

我有一个如下所示的数据框:

矩阵。名字

Per1_23_3_Map1_Ext_5

Per1_24_2_Map2_Ext_5

Per2_23_3_Map1_Ext_5

Per2_25_1_Map2_Ext_5
很多行都是这样。有什么方法可以使用R代码提取每行中的23、24或25,并将它们放入各自的数据帧中?在任何特定行中是23、24还是25都是随机的

我们可以使用stru提取


看到了吗?substr。例如,尝试substrPer1\u 23\u 3\u Map1\u Ext\u 5,1,3来尝试一下。但是如何一次应用于多行?如substr中所述,函数是矢量化的,因此您可以用变量的名称替换字符串,它将对每个元素进行操作。
library(stringr)
sort(as.numeric(str_extract(v1, "(?<=_)[0-9]+")))
sort(as.numeric(sub("^[^_]+_(\\d+).*", "\\1", v1)))