我想转换如下文件
hello
world
123
bye
world
456
byee
world
456678
到像
这样的csv文件hello,world,123
bye,world,456
byee,world,456678
是否可以在不迭代整个文件并查看新行的情况下执行此操作?
答案 0 :(得分:2)
使用{。1}的multi.line容量,然后使用适当的参数write.table:
scan
如果您希望将此文件发送到磁盘,显然会使用合法的文件名。
答案 1 :(得分:1)
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"
))
答案 2 :(得分:1)
扫描进入,按行将其整形为3列矩阵并将其写出。 (用输入和输出文件名替换scan
的第一个参数和write.table
的第二个参数。)
m <- matrix(scan(textConnection(Lines), what = ""), ncol = 3, byrow = TRUE)
write.table(m, stdout(), sep = ",", row.names = FALSE, col.names = FALSE, quote = FALSE)
,并提供:
hello,world,123
bye,world,456
byee,world,456678
注意强>
我们用它作为输入
Lines <- "hello
world
123
bye
world
456
byee
world
456678"