如何在R中在数据框中的列名上方添加文本行并保存为txt文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (45)

我正在使用R从Adobe Analytics中提取数据。数据框有列名,我希望在列名称上方添加以下行,并将文件保存为前一个日期的文本:filename_yyyy-mm-dd。

我在列名称上面添加以下内容时遇到问题:

产品成本模板文件(用户:400024375 ds_id:2)

产品COGS(e102)原价(e103)促销价(e104)购买ID

这些是列名:日期产品事件102事件103事件104 transactionID

这里的最终文件应如下所示:

提问于
用户回答回答于

这是一种方法(假设您的数据框已命名your_data):

line1 = '# Product Cost template file (user: 400024375 ds_id: 2)'
line2 = '# Products COGS (e102) Original Price (e103) Sale Price (e104) Purchase ID'
column_names = c( paste( line1, line2, 'Date', sep = '\n'), 'Product', 'Event 102', 'Event 103', 'Event 104', 'transactionID')

output = rbind( column_names, your_data)
write.table( output, "filename_yyyy-mm-dd.txt", sep="\t", quote = F, row.names = F, col.names = F )

请注意,这假设您还没有数据中的列名,这似乎意味着。如果确实列名已经在第一行,则只需编写output[1, 1] = paste( line1, line2, output[1, 1], sep = '\n')而不是该rbind行。

或者,您可以先写入第一行,然后附加表格:

line1 = '# Product Cost template file (user: 400024375 ds_id: 2)'
line2 = '# Products COGS (e102) Original Price (e103) Sale Price (e104) Purchase ID'
column_names = c( 'Date', 'Product', 'Event 102', 'Event 103', 'Event 104', 'transactionID')

names(your_data) = column_names 
file_name = "filename_yyyy-mm-dd.txt"
cat( line1, line2, file = file_name, sep="\n")
write.table( your_data, file_name, sep="\t", quote = F, row.names = F, col.names = T, append = T )

(同样,如果您已经有列名,只需删除column_names部分。)

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    27 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答
  • 富有想象力的人

    2 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券