You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言绘制Scree Plot报错:argument is of length zero 求助

问题:使用psych包绘制碎石图时出现报错

报错信息:Error in if (nvar != dim(rx)[1]) { : argument is of length zero

用户的R代码及运行输出:

> library(psych)
> 
> evsmoke <- eigen(cor(smoke_data)) # get eigenvalues
> evsmoke
eigen() decomposition
$values
[1] 5.0235537 1.1024931 0.5978259 0.3411405 0.3084539 0.2482748 0.2253735 0.1528846

$vectors
           [,1]        [,2]       [,3]       [,4]        [,5]        [,6]        [,7]         [,8]
[1,]  0.3931577 -0.16571231 -0.3101335  0.2912494  0.23589165  0.05351944 -0.08054941  0.756280417
[2,] -0.3675943  0.25180984  0.4769817 -0.3396868 -0.06445788  0.02456049  0.26511873  0.619291236
[3,]  0.3717502 -0.17776988 -0.2234155 -0.7215427  0.03670089 -0.45944142  0.21731298 -0.001743783
[4,] -0.3011176 -0.57722629  0.1481459 -0.2600885  0.60141194  0.24581963 -0.25052988 -0.040693118
[5,]  0.3859358 -0.12245986  0.1306553 -0.3278663 -0.46591989  0.66115072 -0.23798028  0.025569550
[6,] -0.2555107 -0.70373118 -0.0434621  0.2033157 -0.51156603 -0.11401564  0.33783711  0.086123137
[7,]  0.3419065 -0.17517469  0.6915554  0.1796762 -0.05691227 -0.45195408 -0.36646867  0.008973832
[8,]  0.3876844 -0.05847006  0.3274681  0.1743551  0.30844266  0.26577512  0.71285755 -0.186300292

> evsmoke$values
[1] 5.0235537 1.1024931 0.5978259 0.3411405 0.3084539 0.2482748 0.2253735 0.1528846
> 
> scree(evsmoke, pc=FALSE)  
Error in if (nvar != dim(rx)[1]) { : argument is of length zero
解决方法

报错原因是psych::scree()函数不支持直接传入eigen()返回的完整列表对象,它无法从中正确提取维度信息,导致条件判断失败。可以通过以下几种方式解决:

  • 方法一:直接传入特征值向量
    提取eigen()结果中的values部分传入函数:

    scree(evsmoke$values, pc=FALSE)
    
  • 方法二:直接传入相关矩阵
    让scree()函数自行计算特征值并绘图:

    scree(cor(smoke_data), pc=FALSE)
    
  • 方法三:传入主成分分析结果
    先使用principal()函数完成主成分分析,再将结果传入scree():

    pc_smoke <- principal(smoke_data, nfactors = ncol(smoke_data))
    scree(pc_smoke, pc=FALSE)
    

内容的提问来源于stack exchange,提问作者Theo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:55:38