妥善處理我有這樣一個數據幀:需要得到[R cummax但來港
dput(df1)
structure(list(x = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), y = c(16449L, NA, NA,
16449L, 16450L, 16451L, NA, NA, 16455L, 16456L, NA, NA, 16756L,
NA, 16460L, 16464L, 16469L, NA, NA, 16469L)), .Names = c("x",
"y"), row.names = c(NA, -20L), class = "data.frame")
我需要變異的y
列如下(使用dplyr
):
df1 <- mutate(df1, y = ifelse(is.na(y), cummax(y), y))
然而,cummax
不適合我的情況。如何用一些替代方法獲得相同的效果?
結果輸出的NA行數爲y
,其中最後一個非NA值爲y
。它們按順序排列。
另外,我想是這樣的,它不工作:
mutate(df1, y = ifelse(is.na(y), max(y[1:row_number()], na.rm = TRUE), y)
因爲ROW_NUMBER()本身就是通過當前行的1矢量,它產生的錯誤。
編輯:所需的輸出如下:
structure(list(x = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), y = c(16449, 16449,
16449, 16449, 16450, 16451, 16451, 16451, 16455, 16456, 16456,
16456, 16756, 16756, 16460, 16464, 16469, 16756, 16756, 16469
)), class = "data.frame", .Names = c("x", "y"), row.names = c(NA,
-20L))
你想要的輸出是什麼? –
將其添加到問題中。抱歉。 – Gopala