r - Capture.output 不考虑 r 中的控制台大小
问题描述
我正在尝试使用 capture.output 来保存混淆矩阵,如下所示:
capture.output(result, file = "F:/Results/result.txt")
- 我的混淆矩阵有很多列
- 当我保存文件时,它会像在 RStudio 控制台中那样破坏列。
- 如果我让控制台更大,它有足够的空间并且不会损坏
- 我的问题是:
是否可以让 Capture.output 忽略控制台大小并假设它尽可能大(所以它不会把事情分开)?
如果您想在我的特定数据上进行尝试,我将其作为 .rds 文件放在这里: https ://upload.uni-jena.de/data/5f1045c6c0da81.96434142/result.rds
这是它的外观:
在一个小控制台中(分开):
Confusion Matrix and Statistics
Reference
Prediction ATCC25922 DSM1576
ATCC25922 2 0
DSM1576 0 2
DSM3871 0 0
DSM429 0 0
DSM498 0 0
DSM499 0 0
DSM501 0 0
DSM613 0 0
DSM8696 0 0
DSM9031 0 0
Gr02 0 0
Gr05 0 0
Gr06 0 0
Gr07 0 0
Gr09 0 1
Pak56 0 0
Pak57 0 0
Pak58 1 0
Pak64 0 0
Pak66 0 0
Reference
Prediction DSM3871 DSM429
ATCC25922 0 0
DSM1576 0 1
DSM3871 2 0
DSM429 0 2
DSM498 1 0
DSM499 0 0
DSM501 0 0
DSM613 0 0
DSM8696 0 0
DSM9031 0 0
Gr02 0 0
Gr05 0 0
Gr06 0 0
Gr07 0 0
Gr09 0 0
Pak56 0 0
Pak57 0 0
Pak58 0 0
Pak64 0 0
Pak66 0 0
Reference
Prediction DSM498 DSM499
ATCC25922 0 0
DSM1576 0 0
DSM3871 0 0
DSM429 0 0
DSM498 0 0
DSM499 0 3
DSM501 0 0
DSM613 0 0
DSM8696 0 0
DSM9031 0 0
Gr02 0 0
Gr05 0 0
Gr06 0 0
Gr07 1 0
Gr09 1 0
Pak56 0 0
Pak57 0 0
Pak58 1 0
Pak64 0 0
Pak66 0 0
...
在大型控制台中(一体式):
Confusion Matrix and Statistics
Reference
Prediction ATCC25922 DSM1576 DSM3871 DSM429 DSM498 DSM499 DSM501 DSM613 DSM8696 DSM9031 Gr02 Gr05 Gr06 Gr07 Gr09 Pak56 Pak57 Pak58 Pak64 Pak66
ATCC25922 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DSM1576 0 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DSM3871 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DSM429 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
DSM498 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DSM499 0 0 0 0 0 3 0 0 0 1 0 0 0 0 1 0 0 0 0 0
DSM501 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0
DSM613 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0
DSM8696 0 0 0 0 0 0 0 0 3 0 0 0 0 0 1 0 0 0 0 0
DSM9031 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1
Gr02 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0
Gr05 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
Gr06 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0
Gr07 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0
Gr09 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0
Pak56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0
Pak57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
Pak58 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0
Pak64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Pak66 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 2
解决方案
设置options(width = 100)
以扩大控制台上打印对象时使用的行上的最大字符数。
options(width = 100)
capture.output(result, file = "F:/Results/result.txt")
注意:设置后不要调整控制台窗口的大小options(width = 100)
。某些 R 控制台在调整大小时会自动更改该值。
推荐阅读
- go - 如何使用类型自省和类型断言将列提取到类型变量中?
- sql-server - 如何使用分组查询在 SQL Server 中创建表
- wordpress - Wordpress 无法在 ubuntu 18.04 上运行,http://xxxxxxxxxx/wp-admin/install.php 没有给出对象 404 错误
- sql - 如果行数据相同,则将数字加 1
- php - laravel 文件上传到文件夹和数据库
- android - 如何处理巨大的 JSON 数组?
- flutter - 如何滚动到包含 Flutter 中展开项目的列中的 TextView?
- python - Python 3 TypeError:并非所有参数都在字符串格式化期间转换,列出问题
- objective-c - Xcode 10 错误 PrefixHeader.pch.gch' 不是有效的预编译 PCH 文件
- internals - Reasonml 地图不纯?