R 如何查找文件以形成所需模式的文本
嗨,我有一个像这样的文件-R 如何查找文件以形成所需模式的文本,r,R,嗨,我有一个像这样的文件- 00 01 56 16 43 83 6 00 01 58 90 41 09 6 现在我需要一个R程序将其更改为0001561643836 0001589041096。。 请帮助您可以使用扫描 scanfilename.txt,sep=\n根据所示示例 v1 <- readLines('file.txt') #or #v1 <- scan('file.txt', what='', blank.lines.skip=FALSE, quiet=TRU
00
01
56
16
43
83
6
00
01
58
90
41
09
6
现在我需要一个R程序将其更改为0001561643836 0001589041096。。
请帮助您可以使用扫描
scanfilename.txt,sep=\n根据所示示例
v1 <- readLines('file.txt')
#or
#v1 <- scan('file.txt', what='', blank.lines.skip=FALSE, quiet=TRUE)
indx <- inverse.rle(within.list(rle(v1==''),
values[!values]<- seq_along(values[!values])))
res <- unname(tapply(v1[v1!=''], indx[v1!=''], FUN=paste, collapse=''))
res
#[1] "0001561643836" "0001589041096"
在你询问如何做之前,请试着自己解决这个问题。
res <- unname(tapply(v1, cumsum(c(1, abs(diff(v1=='')))),
FUN=paste, collapse=''))
res[res!='']
#[1] "0001561643836" "0001589041096"
library(data.table)
setDT(list(v1))[,paste(V1, collapse="") ,rleid(V1=='')][V1!='']$V1
#[1] "0001561643836" "0001589041096"