问题:计算每天的日志差异(每天分组)。理想结果应该为每天的第一次观察产生NA。
library(dplyr)
library(tidyverse)
library(tibble)
library(lubridate)
df <- tibble(t = c("2019-10-01 09:30", "2019-10-01 09:35", "2019-10-01 09:40", "2019-10-02 09:30", "2019-10-02 09:35", "2019-10-02 09:40", "2019-10-03 09:30", "2019-10-03 09:35", "2019-10-03 09:40"), v = c(105.0061, 104.891, 104.8321, 104.5552, 104.4407, 104.5837, 104.5534, 103.6992, 103.5851)) # data
# my attempt
df %>%
# create day
mutate(day = day(t)) %>%
# group by day
group_by(day) %>%
# calculate log difference and append column
mutate(logdif = diff(log(df$v)))
问题是
Error: Column `logdif` must be length 3 (the group size) or one, not 8
我需要什么:
[1] NA -0.0010967280 -0.0005616930 NA -0.0010957154
[6] 0.0013682615 NA -0.0082035450 -0.0011009036
答案 0 :(得分:4)
切勿在{{1}}管道中使用$
,也需要将dplyr
附加到NA
输出中
diff