将一个变量与R中上一年的变量进行比较
我对编程还是很陌生,有一点问题我还没有找到解决方案,尽管可能部分原因是因为我不知道如何表达我的搜索查询(英语不是我的第一语言…)。在任何情况下,我都有以下格式的数据集(简化;有更多年和周的数据,以及更多商品): 古迪德 年 周 价格 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将一个变量与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
这里有一个建议的解决方案(对于以后的文章,请包含代码,以便可以轻松创建数据框架,以便人们可以测试任何响应):
关键方面是
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的答案几乎相同,但我认为我的答案在周之前可能会有多余的排序,我猜这是由小组负责的,所以我认为他以最简洁的方式获胜。哦,当然!非常感谢:)哦,当然!非常感谢:)