Я хотел бы группировать данные по некоторым столбцам, а затем заменить NA последним наблюдением. Есть ли способ применить функцию, отличную от функции агрегации, к результату group_by?Как применить самоопределяемую функцию по результату group_by
Вот два образца осуществляется с ddply:
1:
dt<-data.table(A=rep(c(1:3),2), B=c(1,2,NA,NA,2,5),C=c(9,NA,2,8,NA,4)
ddply(dt,"A",function(x){na.locf(x, na.rm = FALSE,fromLast=FALSE)})
2:
ddply(dt,"A",function(x){
if (x[1,"A"]>2){
x[,2:3]*1
} else {
x[,2:3]*(-1)
}
})
Я не знаю, как повторить его с groug_by, который должен быть быстрее чем ddply. Кстати, есть ли функция замены NA быстрее, чем na.locf?
Большое спасибо заранее.
Спасибо за ответ. Если мы используем в таблице data.table, можем ли мы выполнить условие if-else? В примере, если A == 1, вычислите среднее значение другого стандартного отклонения. @Давид Аренбург – YYY