我想在第一个和最后一个逗号上拆分字符串.每个字符串至少有两个
逗号.下面是一个示例数据集和所需的结果.
逗号.下面是一个示例数据集和所需的结果.
这里有一个类似的问题,询问如何拆分第一个逗号:Split on first comma in string
在这里,我问如何在前两个冒号上分割字符串:Split string on first two colons
谢谢你的任何建议.我更喜欢基地R的解决方案.抱歉,如果这是重复的话.
my.data <- read.table(text=' my.string some.data 123,34,56,78,90 10 87,65,43,21 20 a4,b6,c8888 30 11,bbbb,ccccc 40 uu,vv,ww,xx 50 j,k,l,m,n,o,p 60',header = TRUE,stringsAsFactors=FALSE) desired.result <- read.table(text=' my.string1 my.string2 my.string3 some.data 123 34,78 90 10 87 65,43 21 20 a4 b6 c8888 30 11 bbbb ccccc 40 uu vv,ww xx 50 j k,o p 60',stringsAsFactors=FALSE)
解决方法
这是一种相对简单的方法.在第一行中,我们使用sub用分号生成s替换第一个和最后一个逗号.然后我们使用sep =“;”读取s最后将my.data的其余部分cbind到它:
s <- sub(",(.*),",";\\1;",my.data[[1]]) DF <- read.table(text=s,sep =";",col.names=paste0("mystring",1:3),as.is=TRUE) cbind(DF,my.data[-1])
赠送:
mystring1 mystring2 mystring3 some.data 1 123 34,78 90 10 2 87 65,43 21 20 3 a4 b6 c8888 30 4 11 bbbb ccccc 40 5 uu vv,ww xx 50 6 j k,o p 60