data.table()根据列顺序给出虚假结果

时间:2018-07-01 22:45:47

标签: r data.table gmp cbind

我创建了一个十行数据框,然后将其转换为数据表。我用不同的列顺序再次创建了它。当我将其转换为数据表时,结果是虚假的。

    c <- pi
    e <- paste("lotsa text, line", as.character(1:10))
    g <- 987654321L
    a <-  raw(length = 10)

    df <- cbind.data.frame(c, e, g, a, stringsAsFactors = FALSE)
    str(df)

    z <- c(rep(as.bigz("123456789012345678901234567890123456"), times = 10))
    df[,4] <- z
    str(df)
    dt <- data.table(df)
    str(dt)

我得到了我所期望的。 Classes ‘data.table’ and 'data.frame': 10 obs. of 4 variables:

    df <- cbind.data.frame(a, c, e, g, stringsAsFactors = FALSE)
    str(df)

    df[,1] <- z
    str(df)
    dt <- data.table(df)
    str(dt)

这一次,我获得了234行额外的奖励: Classes ‘data.table’ and 'data.frame': 244 obs. of 4 variables:

我不确定我是否愿意相信这一系列命令。有什么选择?至少cbind.data.frame不像cbind那样强制列。

0 个答案:

没有答案