在R中打印加载和加载详细信息

在R中打印加载和加载详细信息,r,plot,R,Plot,我是R新手,被要求准备一个脚本,用于在文本文件中捕获一些R输出 我收到了一组命令,这些命令创建DB连接,加载数据,然后执行一些数学计算,并生成摘要、加载和YLOADING。我将捕获此输出并将其保存在数据库中。我已经把所有的事情都做好了,除了一点不停地一次又一次地提出问题 loadings和yloadings函数有时会给出包含空格的矩阵。比如说, Comp 1, Comp 2, Comp 3 Row1 0.495 0.748 -0.272 Row2 0.605

我是R新手,被要求准备一个脚本,用于在文本文件中捕获一些R输出

我收到了一组命令,这些命令创建DB连接,加载数据,然后执行一些数学计算,并生成摘要、加载和YLOADING。我将捕获此输出并将其保存在数据库中。我已经把所有的事情都做好了,除了一点不停地一次又一次地提出问题

loadings和yloadings函数有时会给出包含空格的矩阵。比如说,

       Comp 1, Comp 2, Comp 3
Row1   0.495  0.748 -0.272
Row2   0.605        -0.562
Row3   0.666 -0.397  0.781
Row4                     
LongNameRow1   0.536        -1.483
LongNameRow2  -0.681 -0.408 -1.145
由于这些输出,我必须手动检查文件并对其进行编辑,使其成为

      Comp 1, Comp 2, Comp 3
Row1  0.495  0.748 -0.272
Row2  0.605  0.000 -0.562
Row3  0.666 -0.397  0.781
Row4  0.000  0.000  0.000
LongNameRow1  0.536  0.000 -1.483
LongNameRow2 -0.681 -0.408 -1.145
i、 e.我必须手动将输出中的所有空格替换为0.000(我不确定0.000是否正确,但这是我唯一能想到的)。这是非常耗时和痛苦的事情

我搜索了一下loadings函数,发现

小负载通常不打印(用空格代替),以吸引人们注意较大负载的图案

所以我的问题是,有没有其他方法或配置可以提供我所需的输出?i、 e.0.000而不是空格或任何其他合理值?至少我想知道我是否可以用逗号或管道字符(即“|”)或类似的东西来分隔输出,以使解析文本成为可能


提前感谢您的帮助

答案是使用
unclass
将荷载转换为矩阵。下面的示例说明了这一点

loadings
函数提取loadings矩阵,并将该矩阵的类更改为
loadings
。打印类
加载的对象时,如您所观察到的,不会打印小值

以下是来自princomp的示例:

fit <- princomp(USArrests, cor = TRUE)
l <- loadings(fit)
l

Loadings:
         Comp.1 Comp.2 Comp.3 Comp.4
Murder   -0.536  0.418 -0.341  0.649
Assault  -0.583  0.188 -0.268 -0.743
UrbanPop -0.278 -0.873 -0.378  0.134
Rape     -0.543 -0.167  0.818       

               Comp.1 Comp.2 Comp.3 Comp.4
SS loadings      1.00   1.00   1.00   1.00
Proportion Var   0.25   0.25   0.25   0.25
Cumulative Var   0.25   0.50   0.75   1.00
fit
l <- unclass(l)
l

             Comp.1     Comp.2     Comp.3      Comp.4
Murder   -0.5358995  0.4181809 -0.3412327  0.64922780
Assault  -0.5831836  0.1879856 -0.2681484 -0.74340748
UrbanPop -0.2781909 -0.8728062 -0.3780158  0.13387773
Rape     -0.5434321 -0.1673186  0.8177779  0.08902432