Использование data.table
я могу сделать следующее:как я могу мутировать в dplyr, не теряя порядок?
library(data.table)
dt = data.table(a = 1:2, b = c(1,2,NA,NA))
# a b
#1: 1 1
#2: 2 2
#3: 1 NA
#4: 2 NA
dt[, b := b[1], by = a]
# a b
#1: 1 1
#2: 2 2
#3: 1 1
#4: 2 2
Попытка ту же операцию в dplyr
однако получает данные вскарабкался/сортируются по a
:
library(dplyr)
dt = data.table(a = 1:2, b = c(1,2,NA,NA))
dt %.% group_by(a) %.% mutate(b = b[1])
# a b
#1 1 1
#2 1 1
#3 2 2
#4 2 2
(как в сторону вышеперечисленного также сортирует оригинал dt
, что несколько сбивает меня с толку, учитывая, что философия dplyr
не изменяется на месте - я предполагаю, что это ошибка с тем, как dplyr
интерфейсов с data.table
)
Какой способ достижения вышеуказанного? dplyr
?
Я предполагаю, что это потому, что 'group_by' вызывает' setkey' внутри. В принципе, у него нет 'ad hoc''. Но я могу ошибаться. – Arun
Как раз отметить это не происходит при использовании обычного кадра данных R. – Vincent
Это ошибка. Можете ли вы подать заявку на github? – hadley