将数据从宽转换为长,其中'lengths(varying)'>'length(times)'

问题描述 投票:0回答:1

我正在尝试将数据从df转换为df2。

> df
  part.id bl.rbc bl.serum bl.hp bl.epfa sm.rbc sm.serum sm.hp sm.epfa oy.rbc oy.serum oy.hp
1       1     NA       NA    NA      NA     NA       NA    NA      NA     NA       NA    NA
2       2     NA       NA    NA      NA     NA       NA    NA      NA     NA       NA    NA
3       3     NA       NA    NA      NA     NA       NA    NA      NA     NA       NA    NA
  oy.epfa
1      NA
2      NA
3      NA


> df2
  part.id timepoint rbc serum hp epfa
1       1        bl  NA    NA NA   NA
2       2        sm  NA    NA NA   NA
3       3        oy  NA    NA NA   NA

我尝试过重塑,但是如果lengths(varying)= 4> length(time)= 3,则会出现错误。我的实际情况涉及16个变化。

创建这些代码:

part.id <- c(1,2,3)
bl.rbc <- NA
bl.serum <- NA
bl.hp <- NA
bl.epfa <- NA
sm.rbc <- NA
sm.serum <- NA
sm.hp <- NA
sm.epfa <- NA
oy.rbc <- NA
oy.serum <- NA
oy.hp <- NA
oy.epfa <- NA


df <- data.frame(part.id, 
                 bl.rbc, bl.serum, bl.hp, bl.epfa, 
                 sm.rbc, sm.serum, sm.hp, sm.epfa,
                 oy.rbc, oy.serum, oy.hp, oy.epfa)

timepoint <- c("bl", "sm", "oy")

rbc <- NA
serum <- NA
hp <- NA
epfa <- NA

df2 <- data.frame(part.id, timepoint, rbc, serum, hp, epfa)
r pivot reshape tidyr reshape2
1个回答
1
投票

这与您的预期输出不匹配,但可能与您的预期目标不符?

© www.soinside.com 2019 - 2024. All rights reserved.