1
我有下面的示例數據表的NA
steps.dt = data.table(steps=rep(0:2, each=3),
date=as.factor(rep(c("10/2/2012", "10/3/2012", "10/4/2012"), each = 3)), interval = as.factor(rep(c(0,5,10), each = 3)))
插入幾的NA
steps.dt[c(2,5,8),"steps"]=NA
表現在看起來像這樣
steps date interval
1: 0 10/2/2012 0
2: NA 10/2/2012 0
3: 0 10/2/2012 0
4: 1 10/3/2012 5
5: NA 10/3/2012 5
6: 1 10/3/2012 5
7: 2 10/4/2012 10
8: NA 10/4/2012 10
9: 2 10/4/2012 10
現在,我試圖用步驟分組的方式替換列「步驟」中的NA由因素「間隔」
我已經看過一些SO上的帖子,比如this,但是我需要用一個因子對替換件進行分組,這很複雜。有沒有辦法做到這一點,而不使用循環?謝謝!
據透露使用
na.aggregate
從zoo
用的 '階梯' 的mean
來代替 'NA',你可以做一些像'replace(steps,is.na(steps),mean(steps,na.rm = TRUE))'而不是。 – Frank@Frank,但他需要按'間隔'進行分組。一個簡單的替換替換NA的步驟總體意思是 –
當然,我的意思是你可以使用這個而不是'ifelse'部分(保留group_by)。 'ifelse'函數通常有一些怪癖和速度問題,當目標是取代某些值時,似乎並不是最自然的選擇。 – Frank