私は2つのdata.frame時系列を持っています。最初のものは完了し、2番目のものは変数の1つの正しい値を持つタイムステップのみを含んでいます。私は他のすべての変数を保持する必要がありますが、2番目のdfに現れるすべての変数をNAにします。ここでは例:R:2つのdata.framesを比較し、一致しないデータを削除する
library(dplyr)
library(tidyverse)
library(lubridate)
#test data:
TDF <- tibble(DATE = seq(make_datetime(2007,09,23,06,00), make_datetime(2008,07,05,23,00), by = 600),
V1 = round(runif(length(DATE)),2),
V2 = round(runif(length(DATE)),2),
V3 = round(runif(length(DATE)),2))
TDF2 <- TDF
TDF2 <- TDF2[TDF2$V1>0.7,]
が出力:
> TDF
# A tibble: 41,287 × 4
DATE V1 V2 V3
<dttm> <dbl> <dbl> <dbl>
1 2007-09-23 06:00:00 0.89 0.21 0.03
2 2007-09-23 06:10:00 0.26 0.54 0.70
3 2007-09-23 06:20:00 0.74 0.22 0.80
4 2007-09-23 06:30:00 0.31 0.48 0.38
5 2007-09-23 06:40:00 0.93 0.26 0.21
> TDF2
# A tibble: 11,972 × 4
DATE V1 V2 V3
<dttm> <dbl> <dbl> <dbl>
1 2007-09-23 06:00:00 0.89 0.21 0.03
2 2007-09-23 06:20:00 0.74 0.22 0.80
3 2007-09-23 06:40:00 0.93 0.26 0.21
4 2007-09-23 07:20:00 0.91 0.36 0.83
5 2007-09-23 07:40:00 0.95 0.87 0.91
そして、これは私が必要なものである:
> TDF_modified
# A tibble: 41,287 × 4
DATE V1 V2 V3
<dttm> <dbl> <dbl> <dbl>
1 2007-09-23 06:00:00 0.89 0.21 0.03
2 2007-09-23 06:10:00 NA 0.54 0.70
3 2007-09-23 06:20:00 0.74 0.22 0.80
4 2007-09-23 06:30:00 NA 0.48 0.38
5 2007-09-23 06:40:00 0.93 0.26 0.21
私はちょうど2つのdata.framesを使用して、一般的なソリューションが必要です。私はループを介してそれを行うことができますが、私はよりエレガントな方法があると確信しています。先進的なおかげでたくさん!ここ
ありがとう!それはかなりうまくいく! – Pelle