如何解决R中的警告

时间:2013-06-19 16:10:38

标签: r missing-data

我正在使用的数据如下所示,它有50000个实例和32个变量.... 缺失值存在于许多变量中,.. 抱歉无法发布整个数据..

我用过

    library(zoo)
    d$V5 <- na.locf(d$V5)

我进一步检查了Gini值,它给了我输出如下

Gini(d$V5)
[1] NA
Warning messages:
1: In sum(x * 1:n) : Integer overflow - use sum(as.numeric(.))
2: In n * sum(x) : NAs produced by integer overflow

但是d $ V5对应于年龄,这是一个数字 目的是找到基尼和信息增益并绘制决策树,由于缺失值,决策树分割为一。 因此,填补缺失值是必要的。 数据:

1   022 F   O   044 0       N   31  12  00P         0012    Y   Y   N   Y   0048    731 0.000000    Y   N   0   VERA    LUCIA   N   N   300.000000  0000    00  N   0
2   015 F   S   018 0       Y   31  20  00  P   0216    Y   Y   Y   Y   0012    853 0.000000    Y   N   0   SARA    FELIPE  N   N   300.000000  0000    00  N   0
3   024 F   C   022 0       Y   31  08  00  P   0048    Y   N   Y   Y   0012    040 0.000000    Y   N   0   HELENA  DOMINGOS SOGRA  N   N   229.000000  0000    00  N   0
4   012 F   C   047 0       N   31  25  00  P   0180    Y   Y   N   Y   0024    035 0.000000    Y   N   0   JACI    VALERIA ALEXANDRA TRAJANO   N   N   304.000000  0000    00  N   0
5   016 F   S   028 0       Y   31  25  00  O   0012    Y   Y   Y   Y   0012    024 0.000000    Y   N   0   MARCIA CRISTINA ZANELLA SANDRO L P MARTINS  N   N   250.000000  0000    00  N   0

.....

49998   023 F   S   023 0       Y   31  28  00  P   0264    Y   Y   Y   Y   0012    991 0.000000    Y   N   0   NOVINA  GLAUCIA N   N   240.000000  0000    00  N   1
49999   009 F   C   038 0       Y   5   28  00  P   0048    Y   Y   Y   Y   0204    040 0.000000    Y   N   0   LILIANE FIGUEIREDO  MIRNA CARVALHO NASCIMENTO   N   N   616.000000  0000    00  N   0
50000   022 M   S   029 0       Y   31  23  00  P   0048    Y   Y   N   Y   0036    026 0.000000    Y   N   0   TITO MARTINS        N   N   341.000000  0000    00  N   0

1 个答案:

答案 0 :(得分:4)

您获得的错误与缺失值无关(可能会也可能不会出现问题)。它可以通过以下方式轻松复制:

sum(1:100000)
#[1] NA
#Warning message:
#In sum(1:1e+05) : integer overflow - use sum(as.numeric(.))

也可以通过转换为双打来避免:

sum(as.numeric(1:100000))
#[1] 5000050000

所以

d$V5 = as.numeric(d$V5)

从那里拿走。