Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在r中每隔一个逗号后拆分列中的文本_Regex_R - Fatal编程技术网

Regex 如何在r中每隔一个逗号后拆分列中的文本

Regex 如何在r中每隔一个逗号后拆分列中的文本,regex,r,Regex,R,我在dataframe中有一个列,它由包含如下值的行组成 SNORD55,RNA5SP47,RNU5F-1,RPS8,RNU5E-6P,SNORD38A,SNORD38B,RNU5D-1,SNORD46,KIF2C,NASP,ZSWIM5,LINC01144,OSTCP5,GPBP1L1,RPS15AP11,BEST4,HMGB1P48,HPDL,CCDC17,AKR1A1,MRPS17P1,TMEM53,HECTD3,UROD,TOE1,TESK2,BTBD19,MUTYH,PTCH2,TCT

我在dataframe中有一个列,它由包含如下值的行组成

SNORD55,RNA5SP47,RNU5F-1,RPS8,RNU5E-6P,SNORD38A,SNORD38B,RNU5D-1,SNORD46,KIF2C,NASP,ZSWIM5,LINC01144,OSTCP5,GPBP1L1,RPS15AP11,BEST4,HMGB1P48,HPDL,CCDC17,AKR1A1,MRPS17P1,TMEM53,HECTD3,UROD,TOE1,TESK2,BTBD19,MUTYH,PTCH2,TCTEX1D4,PLK3,CCDC163P,PRDX1,CCNB1IP1P1,EIF2B3,MMACHC,C1orf228
我希望每秒钟有一行新的逗号

我尝试了以下方法:

df.l$hgnc_symbol<-sub("([^\\,]*\\,[^\\,]*\\,)","\\1\n",df.l$hgnc_symbol)

df.l$hgnc_symbol解决方法:1。在每个逗号处拆分2。把两个元素成对地放在一起

x <- "SNORD55,RNA5SP47,RNU5F-1,RPS8,RNU5E-6P,SNORD38A,SNORD38B,RNU5D-1,SNORD46,KIF2C,NASP,ZSWIM5,LINC01144,OSTCP5,GPBP1L1,RPS15AP11,BEST4,HMGB1P48,HPDL,CCDC17,AKR1A1,MRPS17P1,TMEM53,HECTD3,UROD,TOE1,TESK2,BTBD19,MUTYH,PTCH2,TCTEX1D4,PLK3,CCDC163P,PRDX1,CCNB1IP1P1,EIF2B3,MMACHC,C1orf228"
y <- matrix(strsplit(x, ",")[[1]], , 2, byrow=TRUE)
paste(y[,1], y[,2], sep=",")

x解决方法:1。在每个逗号处拆分2。把两个元素成对地放在一起

x <- "SNORD55,RNA5SP47,RNU5F-1,RPS8,RNU5E-6P,SNORD38A,SNORD38B,RNU5D-1,SNORD46,KIF2C,NASP,ZSWIM5,LINC01144,OSTCP5,GPBP1L1,RPS15AP11,BEST4,HMGB1P48,HPDL,CCDC17,AKR1A1,MRPS17P1,TMEM53,HECTD3,UROD,TOE1,TESK2,BTBD19,MUTYH,PTCH2,TCTEX1D4,PLK3,CCDC163P,PRDX1,CCNB1IP1P1,EIF2B3,MMACHC,C1orf228"
y <- matrix(strsplit(x, ",")[[1]], , 2, byrow=TRUE)
paste(y[,1], y[,2], sep=",")

x如果你想用正则表达式,这个怎么样

df.l$hgnc_symbol<-gsub("([\w-]+,[\w-]+),","\\1,\n",df.l$hgnc_symbol)

df.l$hgnc_symbol如果您想使用正则表达式,那么这个呢

df.l$hgnc_symbol<-gsub("([\w-]+,[\w-]+),","\\1,\n",df.l$hgnc_symbol)

df.l$hgnc_符号如@DavidArenburg所述。我只需要添加gsub,而不是@DavidArenburg提到的sub。我只需要添加gsub而不是sub

使用
gsub
而不是
sub
解决方法:1。在每个逗号处拆分2。将两个元素成对放在一起。@Davidernburg gsub不适用于此模式。怀疑是模式问题而不是功能问题你什么意思?它在每秒钟的逗号后插入
\n
,这不正是您需要的吗?抱歉@DavidArenburg。它确实有效。建议张贴作为答案?也许可以解释为什么gsub可以代替sub工作?使用
gsub
代替
sub
解决方法:1。在每个逗号处拆分2。将两个元素成对放在一起。@Davidernburg gsub不适用于此模式。怀疑是模式问题而不是功能问题你什么意思?它在每秒钟的逗号后插入
\n
,这不正是您需要的吗?抱歉@DavidArenburg。它确实有效。建议张贴作为答案?也许可以解释为什么gsub工作而不是sub?