R:使用 dplyr 创建有条件的新变量

标签 r dplyr

您好,我正在尝试使用 dplyr 创建一个新变量。 我的数据如下所示:

                Land     happy      year
               <fctr>    <int>     <dbl>
           1  Country1    09       2002
           2  Country1    08       2012
           3  Country3    05       2008
           ...

为了创建一个具有每个土地和年份的快乐平均值的变量,我使用了以下代码:

New <-df %>%
      group_by(Land, year) %>%
      mutate(mean.happy = mean(happy, na.rm=T))

现在我想用以下内容创建一个变量: (2012 年快乐的平均值)- 每个国家/地区(2008 年快乐的平均值)。

如何在这些条件下构建新变量?

最佳答案

这是一个 dplyr/tidyr 解决方案。

library(dplyr)
library(tidyr)

df <- df %>%
       group_by(Land, year) %>%
       mutate(mean.happy = mean(happy, na.rm=T)) %>%
       spread(year, mean.happy)

关于R:使用 dplyr 创建有条件的新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316244/

相关文章:

R:geom_vline 标签上的上标

Rcpp:动态更新列表

当行不消失时删除 data.frame 中的所有空列和行

r - 来自现有相关性和标准差值的泰勒图

r - 在嵌套函数中传递准引用参数

r - 使用 dplyr 汇总分组数据时,从另一行中的单元格中减去一行中的单元格?

performance - R:为什么 [[ ]] 方法比使用 $ 更快地对列表进行子集化?

r - dplyr 中的条件求和(类似于 "refer to the just updated value in another row"- 就像在 Excel 中一样)

r - 如何协调 .data 代词与 rlang::enquo

重新排序具有重复 ID 的数据框