これがすでに尋ねられているかどうかはわかりませんが、実際には見つかりません。私は次の種類のデータセットを持っています:
set.seed(1)
d1 <- data.frame(open = rnorm(5), Y = as.Date(c("2020-05-01", "2020-05-08", "2020-05-15", "2020-05-22", "2020-05-29")), region = c("a", "a", "a", "a", "a"))
+------------+------------+--------+--+--+
| open | Y | region | | |
+------------+------------+--------+--+--+
| -0.6264538 | 2020-05-01 | a | | |
| 0.1836433 | 2020-05-08 | a | | |
| -0.8356286 | 2020-05-15 | a | | |
| 1.5952808 | 2020-05-22 | a | | |
| 0.3295078 | 2020-05-29 | a | | |
+------------+------------+--------+--+--+
今、これをに変えたい
open<-c(rep(d1[1,1],times=7),rep(d1[2,1],times=7),rep(d1[3,1],times=7),rep(d1[4,1],times=7),rep(d1[5,1],times=7))
Y<-seq(from = as.Date("2020-05-01"),to = as.Date("2020-06-04"),by="days")
または
+------------+------------+--+--+--+
| open | date | | | |
+------------+------------+--+--+--+
| -0.6264538 | 2020-05-01 | | | |
| -0.6264538 | 2020-05-02 | | | |
| -0.6264538 | 2020-05-03 | | | |
| -0.6264538 | 2020-05-04 | | | |
| -0.6264538 | 2020-05-05 | | | |
| -0.6264538 | 2020-05-06 | | | |
| -0.6264538 | 2020-05-07 | | | |
| 0.1836433 | 2020-05-08 | | | |
| 0.1836433 | 2020-05-09 | | | |
| 0.1836433 | 2020-05-10 | | | |
+------------+------------+--+--+--+
つまり、基本的に、私は数週間のそれぞれの初めのデータを持っています。「open」変数は週の間の各日付にも適用されるので、それを記入して、ある意味でデータを「長く」したいと思います。
さらに、私もこれをグループごとに行う必要があります(地域のように)
を使用するtidyr
とdplyr
、日付を入力してから入力できます。
library(tidyr)
library(dplyr)
d1 %>%
group_by(region) %>%
complete(Y = seq.Date(min(Y), max(Y), by = "day")) %>%
fill(open, .direction = "down")
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加