我有一个宽格式的数据帧,在不同的日期范围内重复测量.在我的例子中,有三个不同的时期,都有相应的值.例如,第一测量(Value1)是在测量期间从DateRange1Start到DateRange1End:
ID DateRange1Start DateRange1End Value1 DateRange2Start DateRange2End Value2 DateRange3Start DateRange3End Value3
1 1/1/90 3/1/90 4.4 4/5/91 6/7/91 6.2 5/5/95 6/6/96 3.3
Run Code Online (Sandbox Code Playgroud)
我希望将数据重新整形为长格式,以便将DateRangeXStart和DateRangeXEnd列分组.因此,原始表中的1行在新表中变为3行:
ID DateRangeStart DateRangeEnd Value
1 1/1/90 3/1/90 4.4
1 4/5/91 6/7/91 6.2
1 5/5/95 6/6/96 3.3
Run Code Online (Sandbox Code Playgroud)
我知道必须有一种方法可以用reshape2/ melt/ recast/ 来做到这一点tidyr,但我似乎无法弄清楚如何以这种特殊方式将多组度量变量映射到单个值列集.
我正在尝试使用pivot_longer来延长我的数据框,但我不需要它很长,并且希望输出多个“值”列。
\n例子:
\ndf <- tibble(\n ids = c("protein1", "protein2"),\n mean.group1 = sample(1:1000, 2),\n mean.group2 = sample(1:1000, 2),\n se.group1 = sample(1:10, 2),\n se.group2 = sample(1:10, 2)\n)\n\ndf\n# A tibble: 2 \xc3\x97 5\n ids mean.group1 mean.group2 se.group1 se.group2\n <chr> <int> <int> <int> <int>\n1 protein1 763 456 6 4\n2 protein2 820 624 4 7\nRun Code Online (Sandbox Code Playgroud)\n我想要的输出是:
\ndf2 <- tibble(\n ids = c("protein1", "protein1", "protein2", "protein2"),\n mean = c(df$mean.group1[1], df$mean.group2[1], df$mean.group1[2], df$mean.group2[2]),\n se = c(df$se.group1[1], df$se.group2[1], df$se.group1[2], df$se.group2[2]),\n group = c("group1", "group2", …Run Code Online (Sandbox Code Playgroud)