我包含三個變量,其中包含三個唯一ID,每個都有多個記錄。見下面排除R中特定行下面的所有記錄
ID <- c(rep(1,7), rep(2,6), rep(3,5), rep(4,6))
t <- c(seq(1,7), seq(1,6), seq(1,5), rep(2,6))
y <- c(rep(6,7), rep(1,6), rep(6,5), rep(0.2,6))
z <- c(5,0,0,0,1,0,0,0,0,-1,0,0,0,4,2,NaN,0,1,0,0,1,Inf,Inf, Inf)
dat1 <- data.frame(ID, t, y, z)
對於每個ID,如果Z值小於0(負),NaN的,天道酬勤,或-Inf,我需要排除的記錄和它下面的所有記錄。
對於這個數據,新處理的數據是這樣的:
ID <- c(rep(1,7), rep(2,2), rep(3,2), rep(4,3))
t <- c(seq(1,7), seq(1,2), seq(1,2), rep(2,3))
y <- c(rep(6,7), rep(1,2), rep(6,2), rep(0.2,3))
z <- c(5,0,0,0,1,0,0,0,0,4,2,0,0,1)
dat2 <- data.frame(ID, t, y, z)
與'cummin'基本相同的是'dat1 [as.logical(ave(dat1 $ z,dat1 $ ID,FUN = function(x)cummin(is.finite(x)&x> = 0))),] '。可以通過更接近地匹配你的論點來清理一下。 – lmo