每三行分组后合并起来
【问题】
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。