скажем, у меня есть вложенный список с data.frame с именем list_df_A, который имеет следующую структуру:
$ :'data.frame': 1 obs. of 3 variables:
..$ a :chr a1
..$ b :chr b1
..$ c :chr c1
$ :'data.frame': 3 obs. of 3 variables:
..$ a :chr [1:3] a21 a22 a23
..$ b :chr [1:3] b21 b22 b23
..$ c :chr [1:3] c21 c22 c23
$ :'data.frame': 1 obs. of 3 variables:
..$ a :chr a3
..$ b :chr b3
..$ c :chr c3
поэтому, если я привяжу их к data.table / data.frame:
list_df_A <- rbindlist(list_df_A)
list_df_A будет выглядеть так:
a b c
1: a1 a2 a3
2: a21 b21 c21
3: a22 b22 c22
4: a23 b23 c23
5: a3 b3 c3
Теперь у меня есть другой список. Этот список на самом деле является корнем файла json. Позвольте мне назвать этот список list_root, который имеет следующую структуру:
chr [1:3] "type1" "type2" "type3"
если я сделаю это как data.table / data.frame:
list_root <- as.data.table(list_root)
Я получаю эту таблицу
V1
1: type1
2: type2
3: type3
Теперь возникает вопрос: я знаю, что type2 в list_root имеет 3 записи в list_df_A. Это потому, что каждый "тип" относится к одному фрейму данных в list_df_A
Как вы сообщите R, когда он свяжет две таблицы data.table вместе, он покажет что-то вроде этого?
V1 a b c
1: type1 a1 a2 a3
2: type2 a21 a21 a21
3: type2 b22 b22 b22
4: type2 c23 c23 c23
5: type3 a3 b3 c3
В каком-то смысле строка 2,3,4 принадлежит type2?
rbindlist
аргументаidcol
, который исключает имена переданного вами списка? Именно для этой цели? - person joran   schedule 14.02.2018cbind
, если все, что вы делаете, - это привязка строк? - person joran   schedule 14.02.2018idcol
вrbindlist
, и вы должны быть настроены. - person joran   schedule 14.02.2018names(list_df_A) <- list_root; rbindlist(list_df_A,idcol = "id")
и все готово. - person joran   schedule 14.02.2018