如何根据另一列的数值将数值分配给新列

时间:2020-05-19 08:24:58

标签: r dplyr

我有要做的这个非常简单的任务,但是我似乎无法以任何有效的方式解决它。 我应该从一个大型数据框中计算不同个体的不同时期的数量。

这是我的数据示例:

myData <- tibble(
  individuals = c(rep("r1",9),rep("r2",9), rep("r3",9)),
  group = c(rep(324,3), rep(326,3), rep(328,3), rep(330,3), rep (332,3), rep(334,3), rep(336,3), rep(338,3), rep(340,3)))

individuals group
   <chr>       <dbl>
 1 r1            324
 2 r1            324
 3 r1            324
 4 r1            326
 5 r1            326
 6 r1            326
 7 r1            328
 8 r1            328
 9 r1            328
10 r2            330
# ... with 17 more rows

现在,我想创建另一列,其中第一个提到的个人组获得1,另一个2,第三个人3,然后再次为下一个个人开始计数。预期的结果将是这样:

  individuals group period_number
   <chr>       <dbl>         <dbl>
 1 r1            324             1
 2 r1            324             1
 3 r1            324             1
 4 r1            326             2
 5 r1            326             2
 6 r1            326             2
 7 r1            328             3
 8 r1            328             3
 9 r1            328             3
10 r2            330             1
# ... with 17 more rows  

我想使用group_by(individuals)中的mutate(period_number =)dplyr函数,但是我不知道在mutate()中使用哪个函数。我试图从这里的其他几个问题中寻找问题(Condtionally create new columns based on specific numeric values (keys) from existing columnHow to add column into a dataframe based on condition?),但是由于“组”列中的数字不是类别,而只是运行不同时期的ID号码,所以我认为我不能与例如一起使用if_else()

我确信必须有一个相当简单的解决方案,但是我似乎无法弄清楚。任何帮助将不胜感激!

0 个答案:

没有答案