我的数据集是这样的
id start_year subj1_year subj2_year
1 1 2010 2001 2003
2 2 2012 2002 2004
3 3 2015 2003 2005
4 4 2021 2004 2006
Run Code Online (Sandbox Code Playgroud)
我想创建的每个新列"Subj",每个之间的差异subject_year和start_year列(持续时间):
id start_year subj1_year subj2_year subj1_duration subj2_duration
1 1 2010 2001 2003 9 7
2 2 2012 2002 2004 10 8
3 3 2015 2003 2005 12 10
4 4 2021 2004 2006 17 15
Run Code Online (Sandbox Code Playgroud)
使用什么可以解决dplyr?谢谢!!
您可以使用across以避免重复代码 -
library(dplyr)
df %>%
mutate(across(starts_with('subj'),
~start_year - ., .names = '{sub("year", "duration", .col)}'))
# id start_year subj1_year subj2_year subj1_duration subj2_duration
#1 1 2010 2001 2003 9 7
#2 2 2012 2002 2004 10 8
#3 3 2015 2003 2005 12 10
#4 4 2021 2004 2006 17 15
Run Code Online (Sandbox Code Playgroud)
.names 参数用于将名称分配给新列,将“年份”更改为“持续时间”。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |