data.table "вне диапазона", как добавить значение в новую строку - PullRequest
0 голосов
/ 07 мая 2018

При работе с data.frame просто вставить новое значение, используя номер строки;

df1 <- data.frame(c(1:3))    
df1[4,1] <- 1

> df1
  c.1.3.
1      1
2      2
3      3
4      1

Не работает с data.table;

df1 <- data.table(c(1:3))
df1[4,1] <- 1
Error in `[<-.data.table`(`*tmp*`, 4, 1, value = 1) : i[1] is 4 which is out of range [1,nrow=3].

Как я могу это сделать?

1 Ответ

0 голосов
/ 07 мая 2018

Таблицы данных были разработаны для более быстрой работы с некоторыми распространенными операциями, такими как подмножество, объединение, группировка, сортировка и т. Д., И, как результат, имеют некоторые отличия от data.frames. Некоторые операции, подобные той, которую вы указали, не будут работать с data.tables. Вам нужно использовать data.table - специфичные операции.

dt1 <- data.table(c(1:3))
rbindlist(list(dt1, list(1)), use.names=FALSE)
dt1

#    V1
# 1:  1
# 2:  2
# 3:  3
# 4:  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...