假设我有以下每个抽屉增加 socks 的数据

>socks
year  drawer_nbr  sock_total
1990    1           2
1991    1           2
1990    2           3
1991    2           4
1990    3           2
1991    3           1

我想要一个二进制变量来标识每个抽屉中的 socks 是否增加了。 1 表示增加,0 表示不增加。结果是
>socks
drawer_nbr  growth
  <dbl>     <factor>
    1          0
    2          1
    3          0

我一直在比较一年的 sock_total 与另一年的 sock_total。我知道我需要使用 dplyr::summaries() ,但是我对该函数内部的内容有困难。

最佳答案

如果您将 1991 年与 1990 年进行比较,您可以执行以下操作:

socks %>%
    group_by(drawer_nbr) %>%
    summarise(growth = +(sock_total[year == 1991] - sock_total[year == 1990] > 0))
# A tibble: 3 x 2
#  drawer_nbr growth
#       <int>  <int>
#1          1      0
#2          2      1
#3          3      0

关于r - 条件和分组变异 dplyr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45379465/

10-12 17:31