将由新行分隔的文本文件转换为csv文件

时间:2015-05-28 21:18:27

标签: r rstudio

我想转换如下文件

hello
world
123

bye
world
456

byee
world
456678

到像

这样的csv文件
hello,world,123
bye,world,456
byee,world,456678

是否可以在不迭代整个文件并查看新行的情况下执行此操作?

3 个答案:

答案 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"