相关疑难解决方法(0)

将多组测量列(宽格式)整形为单列(长格式)

我有一个宽格式的数据帧,在不同的日期范围内重复测量.在我的例子中,有三个不同的时期,都有相应的值.例如,第一测量(Value1)是在测量期间从DateRange1StartDateRange1End:

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,但我似乎无法弄清楚如何以这种特殊方式将多组度量变量映射到单个值列集.

r reshape r-faq reshape2 tidyr

36
推荐指数
5
解决办法
1万
查看次数

有没有办法在 R 中将数据透视_更长到多个值列?

我正在尝试使用pivot_longer来延长我的数据框,但我不需要它很长,并且希望输出多个“值”列。

\n

例子:

\n
df <- 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\n
Run Code Online (Sandbox Code Playgroud)\n

我想要的输出是:

\n
df2 <- 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)

r tidyr tidyverse tibble

11
推荐指数
1
解决办法
6244
查看次数

标签 统计

r ×2

tidyr ×2

r-faq ×1

reshape ×1

reshape2 ×1

tibble ×1

tidyverse ×1