私は 2 つdata.frameのdfを持っていwfます。
dfには、各 の時点ごとに 1 つの行がありますid。各 について、いくつかの時点 ( tpoint) が欠落していますid。
私の 2 番目data.frameの ,には、それぞれのieとそれぞれwfに適切な開始と終了があります。tpointidspointepoint
dfだから私は不足している行を埋めたいと思っていtpointsます。以下は、data.frames
df <- read.table(text= "id Gid tpoint dat1 dat2 dat3
1 a 1 x x 55
1 a 3 x x 44
1 a 4 x x 33
2 a 2 x x 66
2 a 3 x x 43
3 b 4 x x 42
3 b 5 x x 36
4 b 4 x x 33
4 b 5 x x 65
4 b 6 x x 77
5 b 4 x x 72
5 b 5 x x 25
5 b 6 x x 12
5 b 7 x x 09",header=TRUE)
wf <- read.table(text= "id Gid spoint epoint
1 a 1 5
2 a 1 4
3 b 4 6
4 b 4 7
5 b 4 7",header=TRUE)
これを行う方法を以下で見つけました。
library(plyr)
seqlist <- apply(wf, 1, function(x) data.frame( id=x[1],
Gid=x[2],
tpoint = seq(x[3], x[4])))
# bunch of warnings but I get the result
seqdf <- ldply(seqlist, data.frame)
finaldf <- merge(seqdf, df, by=c("Gid", "id", "tpoint"), all=TRUE)
行きたい場所にたどり着きましたが、醜い警告がたくさん表示されます。しかし、すべての警告は抑制されるべきだと思います。で猫の皮を剥く方法は無限にありますR。私が行方不明になっているこれを行うためのはるかに良い方法はありますか?