1

次の 2 つのデータ フレームがあります。

Date <- seq(as.Date("2013/1/1"), by = "day", length.out = 17)
x <-data.frame(Date)
x$discharge <- c("1000","1100","1200","1300","1400","1200","1300","1300","1200","1100","1200","1200","1100","1400","1200","1100","1400")
x$discharge <- as.numeric(x$discharge)

Date2 <- c("2013-01-01","2013-01-08","2013-01-12","2013-01-17")
y <- data.frame(Date2)
y$concentration <- c("1.5","2.5","1.5","3.5")
y$Date2 <- as.Date(y$Date2)
y$concentration <- as.numeric(y$concentration)

次のコードを使用して、ある日付から別の日付までの日数を計算しようとしていました。

y %>%
    mutate(BETWEEN0=as.numeric(difftime(Date2,lag(Date2,1))),BETWEEN=ifelse(is.na(BETWEEN0),0,BETWEEN0))%>%
    select(-BETWEEN0)

その結果:

Date2         concentration BETWEEN
1 2013-01-01           1.5       0
2 2013-01-08           2.5       7
3 2013-01-12           1.5       4
4 2013-01-17           3.5       5

ただし、必要なのは、最初の日付の隣に印刷された2つの日付の間で計算された日数などです。

Date2         concentration BETWEEN
1 2013-01-01           1.5       7
2 2013-01-08           2.5       4
3 2013-01-12           1.5       5
4 2013-01-17           3.5       0

つまり、2013-01-01 から 2013-01-07 までは 7 日間、2013-01-08 から 2013-01-12 までは 4 日間などです。

4

1 に答える 1