【发布时间】:2019-06-01 11:11:12
【问题描述】:
我是 tidyverse 数据操作的新手,我正在使用 tidyr 包中的 gather() 函数将我的数据从宽格式更改为长格式。
我有以下data 数据框:
id <- 1:10
stim_1_ACC <- 0.5:10
stim_2_ACC <- 10:19
stim_1_RT <- 0.4:10
stim_2_RT <- 15:24
data <- data.frame(id,stim_1_ACC,stim_2_ACC,stim_1_RT,stim_2_RT)
我将为stim 设置一列,其中stim1 和stim2 作为值,两列ACC 和RT 作为数值变量。
使用gather() 函数,我只能选择一个value 参数,因此只需为一个变量执行我想要的操作。
data %>%
gather(key = "Stimuli", value = "ACC", 2:5)
我通过多个步骤、拆分然后绑定数据框列来实现我的目标,但我正在寻找一种更整洁的方法。最终结果会是这样的:
id stim ACC RT
1 1 stim_1 1.5 900
2 2 stim_1 2.5 901
3 3 stim_1 3.5 902
4 4 stim_1 4.5 903
5 5 stim_1 5.5 904
6 6 stim_2 6.5 905
7 7 stim_2 7.5 906
8 8 stim_2 8.5 907
9 9 stim_2 9.5 908
10 10 stim_2 10.5 909
谢谢!
【问题讨论】: