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