gsub 从字符串正则表达式可选逗号中提取特定数字
gsub extracting a specific number from a string regex optional comma
我需要从向量中的字符串中提取特定数字,如下所示:
V1 V2 info
XX YY AB=414312;CD=0.5555;EF=1234;GH=2346;IJ=551;AA_CD=0.4633
VV ZZ AB=1093;CD=0.4444,0.78463;EF=1654;GH=6546;IJ=1241;AA_CD=0.4366
我只想从 "CD=XXX" 中提取数字(注意每行还有一个 "AA_CD=XXXX")
我目前有:
df$info <- as.numeric(gsub("^.*;CD=[0-9, ],?|;.*$", "", df$info))
在 "CD=" 之后的数字以逗号分隔的情况下不超过一个数字。
我需要它来包含多个数字以逗号分隔的行。
我的正则表达式仅适用于该位置只有一个数字的行,如下所示:
0.5555
0.4444,0.78463
0.0123
0.34,0.54,0.765
我知道这可能是我犯的一个愚蠢的错误...提前致谢!!!
这是一个方法
lapply(strsplit(gsub("^.*;CD=(0\.[0-9]),?|;.*$", "\1", vec), ","), as.numeric)
gsub("^.*;CD=(0\.[0-9]),?|;.*$", "\1", vec) #extracts the numbers
#output
1] "0.5555" "0.4444,0.78463"
然后将这些拆分为 ,
,strsplit
生成一个列表
然后as.numeric
将列表元素转换为lapply
如果不需要跟踪哪个向量成员有哪些数字:
as.numeric(unlist(strsplit(gsub("^.*;CD=(0\.[0-9]),?|;.*$", "\1", vec), ",")))
我需要从向量中的字符串中提取特定数字,如下所示:
V1 V2 info
XX YY AB=414312;CD=0.5555;EF=1234;GH=2346;IJ=551;AA_CD=0.4633
VV ZZ AB=1093;CD=0.4444,0.78463;EF=1654;GH=6546;IJ=1241;AA_CD=0.4366
我只想从 "CD=XXX" 中提取数字(注意每行还有一个 "AA_CD=XXXX")
我目前有:
df$info <- as.numeric(gsub("^.*;CD=[0-9, ],?|;.*$", "", df$info))
在 "CD=" 之后的数字以逗号分隔的情况下不超过一个数字。
我需要它来包含多个数字以逗号分隔的行。 我的正则表达式仅适用于该位置只有一个数字的行,如下所示:
0.5555
0.4444,0.78463
0.0123
0.34,0.54,0.765
我知道这可能是我犯的一个愚蠢的错误...提前致谢!!!
这是一个方法
lapply(strsplit(gsub("^.*;CD=(0\.[0-9]),?|;.*$", "\1", vec), ","), as.numeric)
gsub("^.*;CD=(0\.[0-9]),?|;.*$", "\1", vec) #extracts the numbers
#output
1] "0.5555" "0.4444,0.78463"
然后将这些拆分为 ,
,strsplit
生成一个列表
然后as.numeric
将列表元素转换为lapply
如果不需要跟踪哪个向量成员有哪些数字:
as.numeric(unlist(strsplit(gsub("^.*;CD=(0\.[0-9]),?|;.*$", "\1", vec), ",")))