【发布时间】:2021-12-14 16:02:58
【问题描述】:
我正在尝试将数据框从宽变为长,同时创建两列。
我的原始数据框如下所示:
# Sample data frame.
id <- c(1,2)
v1.act <- c(.4, .8)
v2.act <- c(.5, .7)
v1.fix <- c(1, 0)
v2.fix <- c(0, 1)
df <- data.frame(id, v1.act, v2.act, v1.fix, v2.fix)
id v1.act v2.act v1.fix v2.fix
1 1 0.4 0.5 1 0
2 2 0.8 0.7 0 1
我想将v1 和v2 放在一个名为variable 的列中。每个变量的两个值应放在两个单独的列中:activation 和 fixation。
目标数据框应如下所示:
id variable activation fixation
1 1 v1 0.4 1
2 1 v2 0.5 0
3 2 v1 0.8 0
4 2 v2 0.7 1
关于如何获得此输出的任何想法?
我尝试过使用 pivot_longer() 函数,但我不知道如何同时创建 activation 和 fixation 列(而且我做不到依次)。
任何想法将不胜感激!我对tidyr 很陌生。
【问题讨论】: