从水平数据框到垂直数据框重塑、连接和创建新列

reshape, concatenate and create new column from horizontal to verical dataframe

我有一个很大的数据集,这里显示了其中的一些

data<-read.table(text="SR_ID   GCS_pre_desc    EDA_pre_desc    GCS_post_desc   EDA_post_desc   HR_pre  SBP_pre DBP_pre HR_post SBP_post    DBP_post
1.00    5.800   5.240   1.400   5.500   88  127 57  83  143 83
2.00    3.300   5.580   5.300   6.020   57  153 63  69  108 51
3.00    1.300   5.700   3.700   7.100   77  121 64  81  98  44
4.00    10.400  3.370   9.000   3.030   54  121 39  69  145 65", sep="", header=T)

我想将我的数据重塑为

  1. 将相同的列标题放在彼此下面,例如下面的 HR_post HR_pre
  2. 创建新列 Pre vs. post
  3. 连接列标题,例如 HR_pre vs.post(如下面的屏幕截图所示)。

任何建议将不胜感激。

我们可以使用 pivot_longer 来自 tidyr

library(dplyr)
library(tidyr)
data %>% 
   pivot_longer(cols = -SR_ID, names_to = c(".value", "prevspost"), 
           names_pattern = "(.*)_(pre|post.*)")