r语言如何提取一列中不同格式的字符串中的第二个数字

问题遇到的现象和发生背景

如何在格式不同的一列中提取一串字符中的第二个数字

问题相关代码,请勿粘贴截图

x<-("c(1,4)","c(12,56)","c(8,37)","3:4")

我想要达到的结果

这里需要的是4,56,37,4,且为五十六,三十七,不是分开的两个数字,格式不相同如何进行提取?

可这样操作试试使用stringr包:

library(stringr)
x<-list("c(1,4)","c(12,56)","c(8,37)","3:4")
s<-c()
for (i in 1:length(x)){
    a<-str_extract_all(x[i],"[,:][0-9]{1,2}")
    a<-gsub(',',"",a)
    a<-gsub(':',"",a)
    s<-c(s,as.integer(a))
}
print(s)