R2.15.2中有很多虚拟变量——通过将R升级到3.0.1解决了错误?

R2.15.2中有很多虚拟变量——通过将R升级到3.0.1解决了错误?,r,bigdata,R,Bigdata,我有一个模型看起来(部分)像这样:m=lm(log(y)~ID+x),这给了我以下错误: Error in rep.int(c(1, numeric(n)), n - 1L) : negative length vectors are not allowed y长度为500000,而ID是一个60000级的因子。500Kx60K>2^31,这是R的对象大小限制 如果我升级到新的R(3.0.1),这个问题会得到解决吗?还是错误消息来自其他地方?(我不完全清楚如何从我使用的Ubuntu 13

我有一个模型看起来(部分)像这样:
m=lm(log(y)~ID+x)
,这给了我以下错误:

Error in rep.int(c(1, numeric(n)), n - 1L) : 
  negative length vectors are not allowed
y
长度为500000,而
ID
是一个60000级的因子。500Kx60K>2^31,这是R的对象大小限制

如果我升级到新的R(3.0.1),这个问题会得到解决吗?还是错误消息来自其他地方?(我不完全清楚如何从我使用的Ubuntu 13.04升级R。)


编辑:该因素实际上并不意味着可解释。该因子类似于“固定效应”回归中的去义。模型的其他组件(
x
)也很有趣。问题是:控制不可观测的时不变异质性,y对x的变化有什么反应?数据集是一个面板。我应该补充一点,我没有使用
plm
,因为主要的模型是随机系数模型或广义相加模型。我不希望在手动定义后手动修复标准错误,我希望得到一个适合的模型对象用于蒙特卡罗分析。

要回答有限的问题,是的,级别数小于向量大小的新限制,即数值类的尾数大小(或要使用的尾数大小)(64位浮点)变量:

>  500000*60000 > 2^32
[1] TRUE
> 500000*60000 > 2^52
[1] FALSE
为了解决更大的问题。我怀疑升级能否解决这个问题。这不是我所期望的错误消息,因为索引过大会导致向量赋值溢出:

a <- numeric(10)
> a[ 2^56] <- 0
Error in a[2^56] <- 0 : vector is too large

a[2^56]我认为你最好把你的因子转换成具有很多、更少层次的东西。这样的变量几乎永远都不会有用。即使你设法让模型运行,结果也不会有意义或信息量。事实上,这个因子并不意味着可解释。这个因子类似于“固定效应”回归。模型的其他组成部分(此处未列出,因为它们与问题无关)问题是:
y
x
变化的反应是什么,控制不可观察的时不变异质性?数据集是一个面板。要了解这些类型的模型,请参考计量经济学文本。我应该补充一点,我没有使用
plm
,因为主要的模型是随机系数模型或广义加性模型。我不想在手动去含义后手动修复标准误差,我想得到一个适合的模型对象用于蒙特卡罗分析。是的,我正在使用一台能够处理这种内存的群集计算机。你试过稀疏模型矩阵吗e是最近的一个问题,说它们不起作用(至少正如我预期的那样),但这似乎值得调查。