我正在尝试使用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而不是所有值?谢谢你的帮助。
答案 0 :(得分: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