r - 使用 dplyr 从一个变量中减去第二个变量的值
问题描述
我有时间相关的数据,其中包括“年份”作为一列,并且是数据的年份。我有第二个变量,每年一个值,当年份相同时,我想从第一个变量中减去它。
library(dplyr)
a1 = data.frame(year = 2000:2005, y=0:5)
b1 = data.frame(year = 2000:2005, y=0:5)
ab = rbind(a1,b1)
c1 = data.frame(year = 2000:2005, x = 10:15)
# my best attempt - does not work
result <- ab %>% group_by(year) %>% mutate(diff = year - c1[year])
我期望结果有一个条目,年份 = 2000,y = 0,新列 diff = -10。
但是,似乎无法使用 dplyr 完成这项工作。
这如何使用 dplyr 来完成?
解决方案
a1和b1有区别吗?它们看起来一样。
这个怎么样?
d <- left_join(ab, c1, by = "year") %>%
mutate(diff = y-x)
给我这个,这似乎解决了你的问题。
year y x diff
1 2000 0 10 -10
2 2001 1 11 -10
3 2002 2 12 -10
4 2003 3 13 -10
5 2004 4 14 -10
6 2005 5 15 -10
7 2000 0 10 -10
8 2001 1 11 -10
9 2002 2 12 -10
10 2003 3 13 -10
11 2004 4 14 -10
12 2005 5 15 -10
推荐阅读
- multithreading - 在 Windows C++ 上创建仅具有管理员访问权限的多线程命名管道服务器时出错
- reactjs - GitLab CI Pipeline Job 给出错误 JavaScript heap out of memory
- apache-beam - 数据流。价值提供者。如何从多个选项中创建?
- android - 如何在应用程序处于前台时更新徽章应用程序编号
- vba - 宏在 mailitem.Subject 项的特殊字符上失败(运行时错误“1004”:应用程序定义或对象定义错误)
- dataframe - 使用pyspark中的条件创建具有运行总量的列
- java - 将 Java 编译为 WebAssembly
- python - Pandas 将一列值(单热编码)映射到具有多个可能值的单列中
- python - 如何根据另一个列表的项目顺序对元组列表进行排序
- swift - 如何从不同的集合构建模型而不破坏 MVC - swift - Firebase