如何在使用 write.table 复制和粘贴数据框时在输出 table 上方添加一行文本?

How to add a row of text above the output table when using write.table to copy and paste a data frame?

假设我们有以下名为 data 的数据框,由下面的代码生成:

> data
  ID Period Values
1  1      1      5
2  1      2     10
3  1      3     15
4  2      1     12
5  2      2      0
6  2      3      2
7  3      1      4
8  3      2     -8
9  3      3      3

data <- 
  data.frame(
    ID = (c(1,1,1,2,2,2,3,3,3)),
    Period = as.numeric(c(1, 2, 3, 1, 2, 3, 1, 2, 3)),
    Values = as.numeric(c(5, 10, 15, 12, 0, 2, 4, -8, 3))
  )

接下来,我们使用下面的基本 R 中的简单代码将 data 复制并粘贴到 Excel sheet:

write.table(x = data,
            file = "clipboard",
            sep = "\t",
            row.names = FALSE,
            col.names = TRUE
  )

当copy/pasting数据变成Excel时,我想在table的正上方插入一行描述table的文字(例如:Table name is "Data"), 如下图所示.

如何修改以上代码以在 table 上方插入文本行?最好在基 R 中?

仅剪贴板

writeLines(
  c("table name is mtcars",
    capture.output(write.table(mtcars[1:3,], sep = "\t", row.names = FALSE))),
  "clipboard")

...然后粘贴到 Excel。我曾经 运行 遇到过数据嵌入问题(嵌入选项卡等)的问题,也许链中的某些内容(包括“我”)没有正确处理所有事情。

在 windows 上,可以将 writeLines(.., "clipboard") 替换为 writeClipboard,但该功能只有 windows。在其他操作系统上,可以为剪贴板 reading/writing.

安装 clipr

使用文件

writeLines("table name is mtcars", con = "somefile.csv")
write.table(mtcars[1:3,], "somefile.csv", row.names = FALSE, append = TRUE, sep = ",")
# Warning in write.table(mtcars[1:3, ], "somefile.csv", row.names = FALSE,  :
#   appending column names to file

(不能使用write.csv,因为它不能容忍append=TRUE,抱怨attempt to set 'append' ignored。)

结果文件:

table name is mtcars
"mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb"
21,6,160,110,3.9,2.62,16.46,0,1,4,4
21,6,160,110,3.9,2.875,17.02,0,1,4,4
22.8,4,108,93,3.85,2.32,18.61,1,1,4,1

它在 Excel 中打开为