首页 > 解决方案 > 如何在R中以其他变量为条件创建一个变量

问题描述

我有一个非常大的数据框,如下所示:

Region  year    prate   
1       2005     24
1       2006     17
1       2007     56
2       2005     13
2       2006     65
2       2007     43
3       2005     91
3       2006     65
3       2007     12
.....

我想创建一个名为 prate07 的新变量,其中 2007 年的变量是该年 prate 的值,其他年份的值为 0。如下所示:

Region  year    prate   prate07
1       2005     24      0
1       2006     17      0
1       2007     56      56
2       2005     13      0
2       2006     65      0 
2       2007     43      43
3       2005     91      0
3       2006     65      0
3       2007     12      12
.....

有人可以帮我找到它的代码吗?

我在这里先向您的帮助表示感谢

我使用了以下代码,但它不起作用:

library(tidyverse)
dat2 <- dat %>%
mutate(group2 = str_c("p_rate", year), prate07 = prate) %>%
spread(group2, prate07, fill = 0)

标签: variablesif-statementconditional

解决方案


推荐阅读