如何在 R 中的 princomp 中获取选定的载荷
How to get selected loadings in princomp in R
我正在尝试使用 princomp 函数和 iris 数据集的前 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 而不是所有值?感谢您的帮助。
您可以只选择一些阈值并替换单元格:
> 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 函数和 iris 数据集的前 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 而不是所有值?感谢您的帮助。
您可以只选择一些阈值并替换单元格:
> 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