DATA = data.frame("ID"=c(1,1,1,2,2,2,3,3),
"TIME" = c(1,2,3,1,2,3,1,2),
"ANIM" = c('CAT','FOX','RABIT','DOG','FOX','BUNNY','FOX','DOG'))
DATA$WANT = c('CAT','CAT','CAT','DOG','DOG','DOG','FOX','FOX')
我有“数据”,并希望添加变量“ WANT”,该变量为每个“ ID”使用第一个“ ANIM”。我希望有一个data.table解决方案
na.locf
从zoo
和使用data.table
library(data.table)
library(zoo)
library(dplyr)
setDT(DATA)[, ANIM := na.locf0(na.locf0(na_if(ANIM, "")), fromLast = TRUE), ID]
有了更新的版本,我们可以 first
setDT(DATA)[order(TIME), WANT := first(ANIM), ID]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句