#r #data.table
#r #data.table
Вопрос:
У меня есть список таблиц data.tables, и я хотел связать их вместе с новым столбцом с индексом списка. В настоящее время я использую rbindlist()
from data.tables, но я хотел бы сохранить информацию о его индексе списка. Можете ли вы помочь мне сделать это?
set.seed(1)
x1<- data.table(x = LETTERS, y = runif(26))
x2<- data.table(x = LETTERS, y = runif(26))
l1 <- list(x1, x2)
# head(x1)
# x y
# 1: A 0.2655087
# 2: B 0.3721239
# 3: C 0.5728534
# 4: D 0.9082078
# 5: E 0.2016819
# 6: F 0.8983897
# head(x2)
# x y
# 1: A 0.01339033
# 2: B 0.38238796
# 3: C 0.86969085
# 4: D 0.34034900
# 5: E 0.48208012
# 6: F 0.59956583
ожидаемый результат
x y g
A 0.2655087 1
B 0.3721239 1
C 0.5728534 1
D 0.9082078 1
E 0.2016819 1
F 0.8983897 1
.
.
.
A 0.01339033 2
B 0.38238796 2
C 0.86969085 2
D 0.34034900 2
E 0.48208012 2
F 0.59956583 2
.
.
.
Комментарии:
1.
rbindlist(l1, idcol='g')
? Я предполагаюidcol
, что опция все еще находится вv.1.9.6
2. Ах! дерьмо! Я недостаточно изучал документацию! Спасибо!
3. @theArun не стесняйтесь отвечать самостоятельно, на ваш вопрос могут прийти будущие читатели. akrun не нужно больше очков SO 🙂
Ответ №1:
как указывает @akrun, выходы idcol
доступны в data.tables
из v.1.9.6
rbindlist(l1, idcol = 'g')
Комментарии:
1. дополнительное уточнение — если вы хотите, чтобы значения
g
были другими, чем1
, … ,length(l1)
, убедитесьl1
, что это имя.g
будут заполнены именами элемента списка, соответствующими тому, откуда он взят.