基于我的评论,我会尝试以下方法作为一种可能的方法:
首先,一些示例数据:
set.seed(1)
A <- data.frame(matrix(rnorm(10), ncol = 5))
B <- data.frame(matrix(rnorm(10), ncol = 5))
C <- data.frame(matrix(rnorm(10), ncol = 5))
首先,按照建议,将data.frame
s 放入 a 中list
。将list
元素的名称设置为您希望在data.frame
. 在这里,我只是使用了与原始data.frame
s 相同的名称:
myList <- list(A = A, B = B, C = C)
其次,创建一个自定义print
函数,该函数具有一条cat
线并print.data.frame
具有您需要的任何其他设置(如row.names = FALSE
)。
print.myList <- function(x, ...) {
invisible(lapply(names(x), function(y) {
cat("#:", y, "\n")
print.data.frame(x[[y]], row.names = FALSE)
cat("\n")
}))
}
出于演示目的,我将写入 a tempfile()
,但您实际上会将其写入计算机上某处的文本文件。
temp <- tempfile()
实际的“写作”由以下人员完成capture.output
:
capture.output(print.myList(myList), file = temp)
这是我们的“临时”文件现在的样子:
readLines(temp)
# [1] "#: A "
# [2] " X1 X2 X3 X4 X5"
# [3] " -0.6264538 -0.8356286 0.3295078 0.4874291 0.5757814"
# [4] " 0.1836433 1.5952808 -0.8204684 0.7383247 -0.3053884"
# [5] ""
# [6] "#: B "
# [7] " X1 X2 X3 X4 X5"
# [8] " 1.5117812 -0.6212406 1.12493092 -0.01619026 0.8212212"
# [9] " 0.3898432 -2.2146999 -0.04493361 0.94383621 0.5939013"
# [10] ""
# [11] "#: C "
# [12] " X1 X2 X3 X4 X5"
# [13] " 0.9189774 0.07456498 0.61982575 -0.1557955 -0.4781501"
# [14] " 0.7821363 -1.98935170 -0.05612874 -1.4707524 0.4179416"
注意:当然,如果您在文本编辑器中打开生成的文件,您将看不到[1]
此处显示的数字。