Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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中上一年的变量进行比较_R_Tidyverse - Fatal编程技术网

将一个变量与R中上一年的变量进行比较

将一个变量与R中上一年的变量进行比较,r,tidyverse,R,Tidyverse,我对编程还是很陌生,有一点问题我还没有找到解决方案,尽管可能部分原因是因为我不知道如何表达我的搜索查询(英语不是我的第一语言…)。在任何情况下,我都有以下格式的数据集(简化;有更多年和周的数据,以及更多商品): 古迪德 年 周 价格 1. 2015 3. X1 1. 2015 4. Y1 1. 2016 3. Z1 1. 2016 4. U1 1. 2017 3. V1 1. 2017 4. W1 2. 2015 3. X2 2. 2015 4. Y2 2. 2016 3. Z2 2. 2016

我对编程还是很陌生,有一点问题我还没有找到解决方案,尽管可能部分原因是因为我不知道如何表达我的搜索查询(英语不是我的第一语言…)。在任何情况下,我都有以下格式的数据集(简化;有更多年和周的数据,以及更多商品):

古迪德 年 周 价格 1. 2015 3. X1 1. 2015 4. Y1 1. 2016 3. Z1 1. 2016 4. U1 1. 2017 3. V1 1. 2017 4. W1 2. 2015 3. X2 2. 2015 4. Y2 2. 2016 3. Z2 2. 2016 4. U2
这里有一个建议的解决方案(对于以后的文章,请包含代码,以便可以轻松创建数据框架,以便人们可以测试任何响应):


关键方面是
dplyr::lag()
,它负责引用前一行中的值。在边界处引入
NA
s(即每组中的第一个条目)非常聪明。

这里有一个建议的解决方案(对于以后的帖子,请包含代码,以便可以轻松创建您的数据框,以便人们可以测试任何响应):

关键方面是
dplyr::lag()
,它负责引用前一行中的值。在边界处引入
NA
s(即每组中的第一个条目)足够聪明。

使用
lag()
访问上一行的值。只要我们按货物和周分组,按年份排序,就应该给出上一年的价格:

df %>% 
  group_by(GoodID, Week) %>%
  arrange(Year) %>%
  mutate(Price_Last_Year = lag(Price)) %>%
  ungroup()
使用
lag()
访问上一行的值。只要我们按货物和周分组,按年份排序,就应该给出上一年的价格:

df %>% 
  group_by(GoodID, Week) %>%
  arrange(Year) %>%
  mutate(Price_Last_Year = lag(Price)) %>%
  ungroup()

@麦卡斯基尔。现在它工作了!+/-这和格雷戈·托马斯的回答是一样的。同时两人一票!!!是的,与盖戈尔的答案几乎相同,但我认为我的答案在
周之前可能会有多余的排序,我猜这是由
小组负责的,所以我认为他以最简洁的方式获胜。@MacAskill。现在它工作了!+/-这和格雷戈·托马斯的回答是一样的。同时两人一票!!!是的,与Gegor的答案几乎相同,但我认为我的答案在
周之前可能会有多余的排序,我猜这是由
小组负责的,所以我认为他以最简洁的方式获胜。哦,当然!非常感谢:)哦,当然!非常感谢:)