每三行分组后合并起来

【问题】

I would like to convert a file like follows

hello
world
123

bye
world
456

byee
world
456678

to a csv file like

hello,world,123
bye,world,456
byee,world,456678

别人解法

dat <- readLines( # con = 'path/to/your/file'
   con = textConnection('hello
world
123

bye
world
456

byee
world
456678')

write.csv(
  t(matrix(
    dat[-seq(4,length(dat),4)], # Drop the spacer
    length(dat)/3,3), # Estimate columns
  file = "path/to/your.csv" 
  ))

【回答】

       直观的解法是:删掉空行,每3行分一组,各组用逗号拼成一行。如无特殊要求,可用SPL实现:


A

1

=file("d:\\source.txt").read@n().select(~!="")

2

=A1.group((#-1)\3).(~.concat@c())

3

=file("d:\\result.csv").write(A2)

 

A1:读取文本文件source.txt中的内容,并选出非空行。

A2:每3个一组,每组拼成逗号分隔的字符串。

A3:将A2结果写入文件result.csv