简体   繁体   English

r:pivot tibble 多列

[英]r : pivot tibble multiple columns

I would like to pivot following tibble1 to make tibble2.我想 pivot 跟随 tibble1 制作 tibble2。

tibble1小标题1

tibble::tribble(
  ~SUBJID, ~ARM, ~TIMEPOINT,     ~TP.DATE,     ~TPR_ar,
  2610003,  "B",      "BL0", "2019-03-26", "Undefined",
  2610003,  "B",      "FU1", "2019-05-30",        "SD",
  2610003,  "B",      "FU2", "2019-08-05",        "SD",
  2610003,  "B",      "FU3", "2019-10-04",        "SD",
  2610003,  "B",      "FU4", "2019-12-04",        "NE",
  2610003,  "B",      "FU5", "2020-02-07",        "SD",
  2610003,  "B",      "FU6", "2020-04-14",        "SD",
  2610003,  "B",      "FU7", "2020-07-07",        "SD",
  2610004,  "C",      "BL0", "2019-03-26", "Undefined",
  2610004,  "C",      "FU1", "2019-06-11",        "SD",
  2610004,  "C",      "FU2", "2019-07-29",        "NE",
  2610004,  "C",      "FU3", "2019-08-20",        "PD"
  )

tibble2小标题2

tibble::tribble(
   ~SUBJID, ~ARM,         ~BL0,         ~FU1,         ~FU2,         ~FU3,         ~FU4,         ~FU5,         ~FU6,         ~FU7,
  2610003L,  "B", "03/26/2019", "05/30/2019", "08/05/2019", "10/04/2019", "12/04/2019", "02/07/2020", "04/14/2020", "07/07/2020",
  2610003L,  "B",  "Undefined",         "SD",         "SD",         "SD",         "NE",         "SD",         "SD",         "SD",
  2610004L,  "C", "03/26/2019", "06/11/2019", "07/29/2019", "08/20/2019",           NA,           NA,           NA,           NA,
  2610003L,  "C",  "Undefined",         "SD",         "NE",         "PD",           NA,           NA,           NA,           NA
  )

So far, I've tried到目前为止,我已经试过了

df %>%
  pivot_wider(names_from = c('TIMEPOINT'), values_from = c('TP.DATE','TPR_ar'))

But I didn't get the result I wanted.但是我没有得到我想要的结果。 Your help would be appreciated.您的帮助将不胜感激。 Thank you!谢谢!

First, you need to make TP.DATE and TPR_ar into one single variable, then you can pivot by TIMEPOINT , using them as the variable to fill the values.首先,你需要将TP.DATETPR_ar做成一个单一的变量,然后你可以通过TIMEPOINT pivot ,使用它们作为变量来填充值。

library(tidyr)
library(dplyr)

tibble1 %>% 
  pivot_longer(cols = starts_with("TP")) %>% 
  select.list(-name) %>% 
  pivot_wider(names_from = TIMEPOINT,values_from = value)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM