私は 2 つdata.frame
のdf
を持っていwf
ます。
df
には、各 の時点ごとに 1 つの行がありますid
。各 について、いくつかの時点 ( tpoint
) が欠落していますid
。
私の 2 番目data.frame
の ,には、それぞれのieとそれぞれwf
に適切な開始と終了があります。tpoint
id
spoint
epoint
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
。私が行方不明になっているこれを行うためのはるかに良い方法はありますか?