Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 您能否使用pivot_更广泛地创建多组交替的新列?_R_Pivot - Fatal编程技术网

R 您能否使用pivot_更广泛地创建多组交替的新列?

R 您能否使用pivot_更广泛地创建多组交替的新列?,r,pivot,R,Pivot,我的数据目前看起来是这样的,带有“基于每个不同副作用的编号代码: Session_ID Side_Effect Number_Code 1 anxious 1 1 dizzy 2 1 relaxed 3 3 dizzy 2 7 nauseous 4 7

我的数据目前看起来是这样的,带有“基于每个不同副作用的编号代码:

Session_ID   Side_Effect     Number_Code
 1            anxious           1
 1            dizzy             2
 1            relaxed           3
 3            dizzy             2
 7            nauseous          4
 7            anxious           1
我知道我能做到:

mutate(rn = str_c('side_effect_', row_number())) %>% 
 pivot_wider(names_from = rn, values_from = Side_Effect)
为了创建新列名并将每个副作用放入新列中,如下所示:

 session    Number_Code   side_effect1   side effect_2      side_effect_3    
      1     1                 anxious         NA                 NA
      1     2                 NA              dizzy              NA
      1     3                 NA              NA                 relaxed
      3     2                 dizzy           NA                 NA
      7     4                 nauseous        NA                 NA
      7     1                 NA              anxious            NA
 session     side_effect1   number_code1   side effect_2   number_code2   side_effect_3    number_code3
        1       anxious         1              dizzy             2            relaxed          3
        3       dizzy           2               NA               NA           NA              NA
        7       nauseous        4              anxious           1            NA              NA
但我需要根据“副作用”和“数字代码”扩大数据范围,并将它们放在如下交替列中:

 session    Number_Code   side_effect1   side effect_2      side_effect_3    
      1     1                 anxious         NA                 NA
      1     2                 NA              dizzy              NA
      1     3                 NA              NA                 relaxed
      3     2                 dizzy           NA                 NA
      7     4                 nauseous        NA                 NA
      7     1                 NA              anxious            NA
 session     side_effect1   number_code1   side effect_2   number_code2   side_effect_3    number_code3
        1       anxious         1              dizzy             2            relaxed          3
        3       dizzy           2               NA               NA           NA              NA
        7       nauseous        4              anxious           1            NA              NA

我看到另一篇文章,他们基于两个变量加宽了数据,但第二个变量的所有列都在第一个变量的所有列之后。有没有办法让它们这样交替?谢谢!!

透视加宽了可以从列中获取多个
值,所以在gr创建序列之后oup,使用
pivot\u wide
value\u from
指定感兴趣的列

library(dplyr)
library(tidyr)
df1 %>% 
   group_by(Session_ID) %>%
   mutate(rn = row_number()) %>% 
   ungroup %>% 
   pivot_wider(names_from = rn, values_from = c(Side_Effect, Number_Code))
# A tibble: 3 x 7
#  Session_ID Side_Effect_1 Side_Effect_2 Side_Effect_3 Number_Code_1 Number_Code_2 Number_Code_3
#       <int> <chr>         <chr>         <chr>                 <int>         <int>         <int>
#1          1 anxious       dizzy         relaxed                   1             2             3
#2          3 dizzy         <NA>          <NA>                      2            NA            NA
#3          7 nauseous      anxious       <NA>                      4             1            NA
数据
df1执行此操作时,它会将列组织为:side\u effect1 side\u effect2 side\u effect3 number\u code1 number\u code2…是否可以将其发送到:side\u effect1编号\U代码1侧面效应2编号代码2。。。。。。。