data.table () дает ложные результаты в зависимости от порядка столбцов - PullRequest
0 голосов
/ 02 июля 2018

Я создал фрейм данных из десяти строк, а затем преобразовал его в таблицу данных. Я создал его снова с другим порядком столбцов. Когда я преобразовал его в datatable, результат был ложным.

    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.

...