添加一列,将另一列分为n个块R

时间:2018-11-26 02:13:49

标签: r split

没有简单的方法来描述我的问题,这可能就是为什么我无法通过搜索找到答案的原因。

所以我有一个包含3列的数据框,其中一列是主题编号,另外两列是正确性和阻止。有2个参与者,每个参与者在每个区块中受到2个区块的3个刺激。

  <mat-tab
    *ngFor="let routeLink of routeLinks; let i = index;"
    [label]="routeLink.label"
    [routerLink]="routeLink.link"
    [active]="activeLinkIndex === i">
  </mat-tab>

所以我要做的是创建另一列,该列查看特定的subj编号,并将与该subj对应的块列划分为3个偶数块(原始df有2个块)。通常,我想知道如何将每个主题暴露给N个块的刺激,并将块编号输入到另一列。

     subj corr block
1     1    1     1
2     1    0     1
3     1    1     1
4     1    1     2
5     1    1     2
6     1    1     2
7     2    0     1
8     2    1     1
9     2    1     1
10    2    0     2
11    2    1     2
12    2    1     2

1 个答案:

答案 0 :(得分:0)

类似这样的东西:

library(dplyr)
n_chunks = 3
df %>% 
  group_by(subj) %>% 
  mutate(newblock = rep(1:n_chunks, each = ceiling(n() / n_chunks))[1:n()])

有多少必要取决于您的用例。如果您可以保证n_chunks将每个主题的观察次数平均分配,则可以简化为:

df %>% 
  group_by(subj) %>% 
  mutate(newblock = rep(1:n_chunks, each = n() / n_chunks))