4
替換數據幀的零我有與含有零個值的列的數據幀:R 2與最後的非零值
a <- c(1:10)
b <- c(1,0,0,0,0,-1,-1,0,0,1)
df <-data.frame(a,b)
df
如何可以與最後一個非零值即柱DF $ B來代替零個值是:
1,-1,-1,-1,-1,-1,-1,1,1,1
謝謝你的幫助。
替換數據幀的零我有與含有零個值的列的數據幀:R 2與最後的非零值
a <- c(1:10)
b <- c(1,0,0,0,0,-1,-1,0,0,1)
df <-data.frame(a,b)
df
如何可以與最後一個非零值即柱DF $ B來代替零個值是:
1,-1,-1,-1,-1,-1,-1,1,1,1
謝謝你的幫助。
以下是na.locf
從zoo
的一種方法。儘管此方法在此過程中確實將某些值更改爲NA
,但代碼很好,並且很輕鬆。
library(zoo)
na.locf(with(df, ifelse(b == 0, NA_real_, b)), fromLast = TRUE)
# [1] 1 -1 -1 -1 -1 -1 -1 1 1 1
這個的替代,以及一個可能是快於ifelse
長載體,是
na.locf(with(df, { is.na(b) <- b == 0; b }), fromLast = TRUE)
# [1] 1 -1 -1 -1 -1 -1 -1 1 1 1
+1尼斯 - 我不知道該功能的。 – nrussell 2014-10-16 22:01:16
非常感謝。十分優雅。 – 2014-10-16 22:42:57
另一個變體:'na.locf(with(df,replace(b,b == 0,NA)),fromLast = TRUE)' – thelatemail 2014-10-20 00:11:54