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

时间:2019-05-27 11:49:38

标签: r

我正在使用R从Adobe Analytics中提取数据。数据框具有列名,我正在寻找在列名上方添加以下几行,并将文件另存为带有先前日期的txt文件:filename_yyyy-mm-dd。

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

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

产品嵌齿轮(e102)原价(e103)销售价(e104)采购ID

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

这是最终文件,如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

这是一种实现方法(假设您的数据框名为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部分。)