接收器仅通过控制台而不是通过源保存阵列

时间:2018-10-31 11:08:56

标签: r rstudio sink

我正在运行以下代码:

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”是一个3D数组,尺寸为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

为什么不通过源保存结果,为什么仅通过控制台保存结果?

我在哪里错了?

1 个答案:

答案 0 :(得分:0)

如果要通过函数或源保存对象的(控制台)输出,则需要使用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)