【问题标题】:How to get selected loadings in princomp in R如何在 R 中的 princomp 中获取选定的载荷
【发布时间】:2015-06-25 15:56:57
【问题描述】:

我正在尝试使用 princomp 函数和虹膜数据集的前 4 列进行主成分分析的代码:

prin =princomp(iris[1:4])
loadings(prin)

#Loadings:
#             Comp.1 Comp.2 Comp.3 Comp.4
#Sepal.Length  0.361  0.657 -0.582  0.315
#Sepal.Width          0.730  0.598 -0.320
#Petal.Length  0.857 -0.173        -0.480
#Petal.Width   0.358         0.546  0.754

#               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

我只需要上面部分显示的带有选定值的矩阵(小值在那里保留为空白)。

但是,当我尝试以下代码时,我得到了所有值(包括在上面的输出中被空白的值 - 我希望它们显示为 NA 或 0):

prinl = loadings(prin)
dd = as.data.frame.matrix(prinl)
dd
#                  Comp.1      Comp.2      Comp.3     Comp.4
#Sepal.Length  0.36138659  0.65658877 -0.58202985  0.3154872
#Sepal.Width  -0.08452251  0.73016143  0.59791083 -0.3197231
#Petal.Length  0.85667061 -0.17337266  0.07623608 -0.4798390
#Petal.Width   0.35828920 -0.07548102  0.54583143  0.7536574

如何获得空白值为 NA 或 0 而不是所有值的矩阵或数据框?感谢您的帮助。

【问题讨论】:

    标签: r pca


    【解决方案1】:

    您可以选择一些阈值并替换单元格:

    > threshold <- 0.2
    > dd[abs(dd ) < threshold] <- NA
    > dd
                    Comp.1     Comp.2     Comp.3     Comp.4
    Sepal.Length 0.3613866 -0.6565888 -0.5820299  0.3154872
    Sepal.Width         NA -0.7301614  0.5979108 -0.3197231
    Petal.Length 0.8566706         NA         NA -0.4798390
    Petal.Width  0.3582892         NA  0.5458314  0.7536574
    

    【讨论】:

    • princomp 使用什么阈值?有没有公​​式或者固定值?
    • 看起来像一个默认值为 0.1 的固定值。您可以像这样将cutoff 参数传递给打印函数:print(loadings(prin), cutoff=0.4)
    猜你喜欢
    • 2018-01-28
    • 2020-08-19
    • 2015-05-16
    • 1970-01-01
    • 2020-04-26
    • 2013-05-28
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多