【问题标题】:How do I write to a csv where the first row differs from the remaining rows?如何写入第一行与其余行不同的 csv?
【发布时间】:2019-09-14 05:31:10
【问题描述】:

我需要一个表格格式,其中第一行是连接的日期,所有剩余的行都是用逗号分隔的两个值。但是,将文件另存为 .csv 时,连接日期后会有一个逗号

有谁知道如何从 R 中的第一行删除逗号?

R语言

.....

sub = fread("C:/file.txt") # this is a file with two columns labeled as tmax and tmin

dt2<-"19810101"
setnames(sub,"tmax",dt2) # change name of column 1 from tmax to 19810101

setnames(sub,"tmin","") # change name of column 2 from tmin to a blank

我需要一个表格格式,其中第一行是连接日期,所有剩余的行都是用逗号分隔的两个值,如下所示:

19810101

10.0,2.2

11,1,2.5

等等,

我通过连接两个表在 R 中创建了表,每个表都包含一个包含所需值的列(这些是温度)。我用连接的日期替换了第一列名称。然后我将第二个名称替换为什么都没有(技术上是“”)。

19810101,

10.0,2.2

11,1,2.5

等等,

我确定日期后有逗号的原因是因为两列温度数据都有一个列名(tmax,tmin),并且这些列用逗号分隔。但是,如何从 R 的第一行中删除逗号?

【问题讨论】:

  • 以后在代码前加4个空格,在普通文本中的代码段周围加``,提问时更容易理解
  • 请添加一些示例数据和您用来尝试解决问题的代码。
  • 目前看来,没有逗号的第一行会破坏 csv 的格式。也许你想要writeLines
  • @Hector - 谢谢你的澄清。我阅读了格式说明,但不理解 4 个空格。
  • @CT Hall - 你是完全正确的。第一行没有逗号是个大问题。我正在查看 writeLines 选项。这对我来说是新的。谢谢!

标签: r csv fread


【解决方案1】:

“这是一个不太漂亮但有效的解决方案。 1. 我在一个逗号分隔的文件中写了一个表格,其中只有温度值(没有标题) 2. 将表格作为单列读回 R 3.创建一个新文件并将连接的日期写入第一行 4. 将温度值附加为单列

.... dt2=19810101

fwrite(df, "file.txt"),sep=",", row.names=F, col.names=F) # 将 tmax 和 tmin 值以逗号分隔写入文件,无标题

t=read.table("file.txt", header=F,sep="") # 作为单列读回,但值之间有逗号,没有标题

fileConn

writeLines(dt2,fileConn) # 只将连接的日期写入第一行

close(fileConn) # 关闭连接

write.table(t,file=file2.txt"),quote=F,sep=" ", row.names = F,col.names = F,append=T) # 追加tmax和tmin的单列到新表 ....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 2014-12-28
    • 2019-01-01
    相关资源
    最近更新 更多