【问题标题】:Error: Incorrect number of dimensions in R错误:R 中的维数不正确
【发布时间】:2015-08-07 04:12:00
【问题描述】:

这是我正在使用的数据(这是一个高维数据集,可在 psych 包中找到):

install.packages("psych")
data(sat.act)

我正在尝试进一步清理数据,以便对其进行因子分析。到目前为止,这是我的代码:

data1 <- data[,6:700] 
satact <- data.frame(data1)
satact1 <- na.omit(data1)
dim(data)

但我收到一条错误消息,指出我的数据 [,6,700] 的维数不正确。我已经尝试了我能想到的所有可能的组合,但不确定为什么它显示为不正确。任何帮助将不胜感激!

【问题讨论】:

  • 您想要行的子集吗?那么它将是data[6:700,]
  • dim(sat.act) ## [1] 700 6 应该会给你答案
  • 你需要什么确切的输出?
  • 你只是想省略 NA 的吗? data &lt;- sat.act[complete.cases(sat.act), ]
  • data[,6:700] 表示:“将 data 子集化,仅保留列 变量 编号 6 到 700”。这显然不是您想要的,因为您的数据只有 7 个变量。

标签: r


【解决方案1】:

Elle,如果你想排除 NA 的记录,试试这个。

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

或者如果你想强制 NA0

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

【讨论】:

【解决方案2】:

我得到了同样的错误,即维度数不正确。我创建了如下矩阵,并将维度 dim 指定为 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]

然后我再次重新创建矩阵,如下所示,我将维度 dim 设为 c(x,x)

 ary <- array(seq(from=-98, to=100, by=4), dim= c(5,5))

现在错误消失了,我们可以照常访问数组

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 2017-03-20
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多