我有一个数据集,我想在几个人的第一个观察年中删除第11个月的出现。有可能用ifelse做到这一点吗?类似的东西:
ifelse(ID=="1" & Month=="11" and Year=="2006", "remove these rows",
ifelse(ID=="2" & Month=="11" & Year=="2007", "remove these rows",
"nothing"))
一如既往,所有帮助表示赞赏! :)
答案 0 :(得分:2)
一个data.table
解决方案,它将节省时间和内存(并且略微减少编码)。它可以很好地扩展 big 数据集。
如果列是整数,而不是因子
library(data.table)
DT <- data.table(ID = rep(1:2, each = 72),
Year = rep(2006:2008, each = 24),
Month = rep(1:12, times = 3))
# or you could use: DT <- as.data.table(dat)
setkey(DT,ID,Year,Month)
DT[-DT[J(1:2,2006:2007,11),which=TRUE]]