R中的尺寸失配误差

时间:2018-07-21 03:54:08

标签: r

以下是我拥有的数据集的一些变量。他们中有些人说[1:9969,1],而其他人只是说[1:9969]。在我使用scale函数将所有变量置于同一比例的多级模型中后,出现了带有[,1]的变量,而我正在尝试使用JAGS运行该模型。

 $ lnlaggdpPv2      : num [1:9969, 1] 1.05 1.05 1.05 1.05 1.05 ...
 ..- attr(*, "scaled:center")= num 18.9
 ..- attr(*, "scaled:scale")= num 1.58
 $ lnlaggdpTv2      : num [1:9969, 1] 2.556 -0.122 -0.377 1.16 -0.294 ...
 ..- attr(*, "scaled:center")= num 17.2
 ..- attr(*, "scaled:scale")= num 1.72
 $ NoBust_sq        : num [1:9969] 0.196 0 0.009 0 0 ...
 $ NoBust_cb        : num [1:9969] 2.744 0 0.027 0 0 ...
 $ CountryID        : num [1:9969] 1 1 1 1 1 1 1 1 1 1 ...
 $ YearID           : num [1:9969] 32 32 32 32 32 32 32 32 32 32 ...

下面是我运行的“导致”问题的命令:

pvars2 <- c("lndist","NoBust", "duration", "lagtradeshareEU", "lagtradeopenPv2", "lagtradesharePTv3", "lnlaggdpPv2", "lnlaggdpTv2",     "DefPactTP")
bustsc2 <- bust.datjags2
bustsc2[pvars2] <- lapply(bustsc2[pvars2],scale)

我已经搜索了Google,但不确定如何解决该问题。任何帮助将不胜感激?我希望我已经充分解释了我的问题。我并不是R的“新手”,但是我只是开始频繁地使用它,而我仍然不熟悉其中的一些复杂之处。

1 个答案:

答案 0 :(得分:1)

应用于scale的{​​{1}}的输出是具有一列的vector

matrix

这说明了为什么我们只对与其他列相比scale(1:10) 的那些列才有不同的输出。选项是使用scalevector甚至as.vector

将其转换为c
as.numeric