Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Dplyr-如何进行时间序列价格变化_R_Dplyr - Fatal编程技术网

R Dplyr-如何进行时间序列价格变化

R Dplyr-如何进行时间序列价格变化,r,dplyr,R,Dplyr,我最近一直在学习R,我想为一些产品创建一个价格变化表 例如,我有五种不同产品的两天价格: library(dplyr) df_T0 <- data.frame(brand=c("AAA","BBB","CCC","DDD","EEE"),price=c(1,2,3,4,5),time=rep("03/01/2015",5)) df_T1 <- data.frame(brand=c("AAA","BBB","DDD","EEE","FFF"),price=c(1

我最近一直在学习R,我想为一些产品创建一个价格变化表

例如,我有五种不同产品的两天价格:

    library(dplyr)
    df_T0 <- data.frame(brand=c("AAA","BBB","CCC","DDD","EEE"),price=c(1,2,3,4,5),time=rep("03/01/2015",5))
    df_T1 <- data.frame(brand=c("AAA","BBB","DDD","EEE","FFF"),price=c(1.5,2.5,4.5,5,7),time=rep("03/02/2015",5))
    df <- rbind(df_T0,df_T1)
我想使用以下方法比较两个日期之间的价格:

    df1 <- arrange(df,desc(brand,time))
    df1 %>% mutate(P_yest=lag(price,1,order_by=brand))
只有AAA我得到了预期的结果,其他所有的我都得到了一些奇怪的结果


有什么提示吗?

类似这样的:
df1%>%group\u by(brand)%>%mutate(p\u yest=lag(price,1))
?@stevenbaupré由于
dplyr 0.4.1
中的错误,可能无法工作。相反,我们必须手动计算
滞后
,例如
df%>%groupby(brand)%%>%mutate(P\u yest=c(NA,price[-length(price)])
@MaratTalipov你说得对。我在发布之前没有检查结果。它很有效,谢谢你,玛拉!!!
    df1 <- arrange(df,desc(brand,time))
    df1 %>% mutate(P_yest=lag(price,1,order_by=brand))
       brand price       time P_yest
    1    FFF   7.0 03/02/2015    5.0
    2    EEE   5.0 03/01/2015    4.5
    3    EEE   5.0 03/02/2015    5.0
    4    DDD   4.0 03/01/2015    3.0
    5    DDD   4.5 03/02/2015    4.0
    6    CCC   3.0 03/01/2015    2.5
    7    BBB   2.0 03/01/2015    1.5
    8    BBB   2.5 03/02/2015    2.0
    9    AAA   1.0 03/01/2015     NA
    10   AAA   1.5 03/02/2015    1.0