私が持っているデータには、3つの固有のIDを持つ3つの変数があり、それぞれに複数のレコードがあります。 zの値が0(負)を下回っている場合、各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)
下記参照は、NaN、Infの、または-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