Приемник сохраняет только массив через консоль, а не через источник

Я запускаю этот код:

max.print <- getOption('max.print')
options(max.print=nrow(countryaccepted) * ncol(countryaccepted))
sink(file.txt, append=TRUE, type="out")
cat("*************************\n")
cat("F-Test and T-Test Results")
as.array(HypothesisTesting)
cat("\n\n\n")
sink()
options(max.print=max.print)

Переменная «HypothesisTesting» представляет собой трехмерный массив размером 2 x 2 x 2 и содержит значения типа «double».

Когда я запускаю код через "Исходный код", я получаю только следующий результат в файле.

*************************
F-Test and T-Test Results

Но когда я запускаю его в «Консоли», я получаю следующий результат, сохраненный в файле:

*************************
F-Test and T-Test Results

, , TTest

         H0 Accepted H0 Rejected
Ho True     98.68938    0.970427
H0 False     8.62801    1.310620

, , FTest

         H0 Accepted H0 Rejected
Ho True     100.0000     4.22076
H0 False     7.50504     0.00000

Почему результат не сохраняется через исходный код и почему он сохраняется только через консоль?

Где я не прав?

0
0
22
1

Ответы 1

Вам необходимо использовать print(), если вы хотите сохранить (консольный) вывод объекта через функцию или источник.

*************************
F-Test and T-Test Results
, , 1

     [,1] [,2]
[1,] 0.01 0.01
[2,] 0.01 0.01

, , 2

     [,1] [,2]
[1,] 0.01 0.01
[2,] 0.01 0.01

Код

arr <- array(0.01, dim=c(2, 2, 2))

max.print <- getOption('max.print')
options(max.print = 100)

sink("file.txt", append = TRUE, type = "out")
cat("*************************\n")
cat("F-Test and T-Test Results\n")
print(as.array(arr))                                   # wrap output into print()
cat("\n\n\n")
sink()
options(max.print = max.print)

Если были опечатки, то почему результат отображается через консоль, а не через источник?

Saad Ali Khan 31.10.2018 13:16

Вам нужно использовать print() для того, что вы намереваетесь. Я уточнил свой пост.

Roman 31.10.2018 14:13

Другие вопросы по теме