Основываясь на моем комментарии, я бы попробовал что-то вроде следующего как возможный подход:
Во-первых, несколько примеров данных:
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
в 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")
}))
}
В демонстрационных целях я напишу 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]
чисел, показанных здесь.
person
A5C1D2H2I1M1N2O1R2T1
schedule
10.07.2014
write.table()
, затем вы можетеcat
свое значение # 1.2 в тот же файл с помощьюappend=T
, а затем записать следующий data.frame в тот же файл, снова с помощьюappend=T
. - person MrFlick   schedule 10.07.2014list
, создать собственнуюprint
функцию и использоватьcapture.output
илиsink
с вашей новой функциейprint
. - person A5C1D2H2I1M1N2O1R2T1   schedule 10.07.2014