Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一部のデータを消去しようとしており、ゼロを前の日付の値に置き換えたいと考えています。次のコードが機能することを望んでいましたが、機能しません
temp = c(1,2,4,5,0,0,6,7) temp[which(temp==0)]=temp[which(temp==0)-1]
戻り値
1 2 4 5 5 0 6 7
それ以外の
1 2 4 5 5 5 6 7
私が望んでいたこと。ループせずにこれを行う良い方法はありますか?
この操作は「最後の観測の繰り越し」と呼ばれ、通常はデータのギャップを埋めるために使用されます。これは時系列の一般的な操作であるため、zoo パッケージに実装されています。
temp = c(1,2,4,5,0,0,6,7) temp[temp==0] <- NA library(zoo) na.locf(temp) #[1] 1 2 4 5 5 5 6 7