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。。。。。。。