データフレームの最初と最後の列のゼロをNAに置き換える必要がありますが、最初/最後のゼロを置き換えるときは、その特定の行に存在する連続するゼロ。例のデータフレームを考える:Rのデータフレームの両端にある連続したゼロを置換する
df <- data.frame(a = c(1,0,1,0,1,1,1,0,1,1,1),
b = c(1,1,1,0,1,1,1,0,1,1,1),
c = c(1,0,1,1,1,0,1,0,1,1,1),
d = c(1,1,1,0,1,1,1,1,1,1,1),
e = c(1,0,1,0,1,1,1,1,1,1,1),
f = c(1,1,1,1,1,1,1,1,1,0,1))
df
私はそれを返す必要があります。事前に
df.result <- data.frame(a = c(1,NA,1,NA,1,1,1,NA,1,1,1),
b = c(1,1,1,NA,1,1,1,NA,1,1,1),
c = c(1,0,1,1,1,0,1,NA,1,1,1),
d = c(1,1,1,0,1,1,1,1,1,1,1),
e = c(1,0,1,0,1,1,1,1,1,1,1),
f = c(1,1,1,1,1,1,1,1,1,NA,1))
df.result
感謝を。
all.equal(df, df.result)
#[1] TRUE
:
idx <- t(apply(df != 0, 1, function(x) cumsum(x) == 0 | rev(cumsum(rev(x)) == 0)))
df[idx] <- NA
結果は、ご希望の出力に等しい:
ありがとう!すべてのオプションがうまくいきましたが、私はそのスピードのためにこの答えをマークしました。 – Ross