如果“ Store Nbr”的当前值不等于先前的“ Store Nbr”,并且当前“ OH Qty”等于0,我想删除整行。
Store Nbr POS Value OH Qty
1: 1 10 100
2: 1 20 200
3: 2 30 0
4: 2 40 400
5: 2 50 500
例如,在第3行:存储Nbr [3]!=存储Nr [2]和OH数量[3] == 0,然后删除第3行
结果:
Store Nbr POS Value OH Qty
1: 1 10 100
2: 1 20 200
4: 2 40 400
5: 2 50 500
我们当前的代码是:
*假设数据从上方存储df
New_df = data[{
( data$`Store Nbr` != shift(data$`Store Nbr`, 1L, type "lag"))
&& (data$`OH Qty` == 0))
} , ]
Head(New_df)
谢谢您的帮助!
答案 0 :(得分:0)
一个不太好的解决方案,请从可行的数据中获取未来。
我的循环将为任何一个参数保留new_df = dat[1,]
for (i in 2:nrow(dat)){
if (dat$Store.NBR[i] == dat$Store.NBR[i-1] | dat$OH.Qty[i] != 0){
new_df <- rbind(new_df, dat[i,])
}
}
的任何行。
{{1}}