这是我正在使用的数据(它是一个高维数据集,在心理包中可用):
install.packages("psych")
data(sat.act)
我正在尝试更多地清理数据,以便我可以对其进行因子分析。到目前为止,这是我的代码:
data1 <- data[,6:700]
satact <- data.frame(data1)
satact1 <- na.omit(data1)
dim(data)
但我收到一条错误消息,指出我的数据的维数不正确[,6,700]。我已经尝试了所有可能的组合,但我不确定为什么它会显示为不正确。任何帮助将不胜感激!
答案 0 :(得分:1)
Elle,如果您想要使用library(psych)
data <- sat.act[complete.cases(sat.act), ]
prcomp(data)
Standard deviations:
[1] 146.8300134 68.2543504 9.5430803 3.6666452 1.1715551 0.4647055
Rotation:
PC1 PC2 PC3 PC4 PC5
gender 0.0003401435 -0.0012020541 0.0010970565 0.005788342 -0.0591625722
education -0.0004299901 -0.0002918314 -0.0850528466 0.024064095 -0.9943380906
age 0.0027020833 0.0014188342 -0.9929359565 -0.084983862 0.0824906340
ACT -0.0208448308 0.0016963799 -0.0827031922 0.995852246 0.0314096125
SATV -0.6956211490 -0.7182796666 -0.0017374908 -0.013494765 0.0003648618
SATQ -0.7181010432 0.6957498829 0.0003989952 -0.016166443 -0.0003874180
PC6
gender -0.9982301944
education 0.0589781669
age -0.0064738244
ACT 0.0038129483
SATV 0.0005261265
SATQ -0.0011528452
排除记录,请尝试此操作。
NA
或者,如果您想强制0
到data <- sat.act
data[is.na(data)] <- 0
prcomp(data)
Standard deviations:
[1] 159.4488983 85.1587086 9.5463091 3.7961644 1.1814762 0.4653497
Rotation:
PC1 PC2 PC3 PC4 PC5
gender 0.0003915730 -7.364935e-04 0.0008193646 0.002717142 -0.0591610356
education -0.0004932616 -9.314099e-05 -0.0837084272 0.019199014 -0.9945610838
age 0.0012746540 4.606768e-03 -0.9933615141 -0.080624581 0.0817016560
ACT -0.0172578373 -1.064616e-02 -0.0788111515 0.996345023 0.0259420620
SATV -0.5500283967 -8.349310e-01 -0.0030404778 -0.018696325 0.0002655931
SATQ -0.8349664116 5.502319e-01 0.0021652104 -0.008410428 -0.0000266278
PC6
gender -0.9982440693
education 0.0589261882
age -0.0058797665
ACT 0.0011109106
SATV 0.0003311219
SATQ -0.0007530176
{{1}}
答案 1 :(得分:0)
我遇到了同样的错误,即尺寸错误。我创建了如下矩阵,并将维的维数指定为c(x,x,x)
ary <- array(seq(from=-98, to=100, by=4), dim= c(5,5,1))
按以下方式访问它时,它引发了“尺寸错误”错误
ary[1,] &ary[,1] & ary[1,1]
然后我再次如下所示重新创建矩阵,并将维的维数指定为c(x,x)
ary <- array(seq(from=-98, to=100, by=4), dim= c(5,5))
现在错误消失了,我们可以照常访问数组