首页 > 解决方案 > 如何在 col 名称顶部添加 var 标签

问题描述

我有两个data.frame,一个用于数据(df),一个用于var label(vl)。 在此处输入图像描述

我怎样才能将它们结合在一起并得到如下所示: 在此处输入图像描述

样本数据 df 和 vl 可以使用代码构建:

df<-structure(list(ID = c(1, 1, 1, 2, 2, 3, 3, 3), Date = c("Day 1", 
"Day 7", "Day 29", "Day_8", "Day9", "Day7", "Day.1", "Day 21"
), Score = c("A", "B", "E", "D", "F", "G", "A", "B"), Pass = c("Y", 
"Y", "N", "Y", "N", "N", "Y", "Y")), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"))

vl <-structure(list(Var = c("ID", "Score", "Pass", "Date"), Label = c("Subject ID", 
"Exam Score", "Pass or Fail the Exam", "Exam Date")), row.names = c(NA, 
-4L), class = c("tbl_df", "tbl", "data.frame"))

标签: r

解决方案


在 R 中,数据框不能有双列名,因此一种方法是将原始列名作为第一行。

setNames(rbind(names(df), df), vl$Label[match(names(df), vl$Var)])

#  `Subject ID` `Exam Date` `Exam Score` `Pass or Fail the Exam`
#  <chr>        <chr>       <chr>        <chr>                  
#1 ID           Date        Score        Pass                   
#2 1            Day 1       A            Y                      
#3 1            Day 7       B            Y                      
#4 1            Day 29      E            N                      
#5 2            Day_8       D            Y                      
#6 2            Day9        F            N                      
#7 3            Day7        G            N                      
#8 3            Day.1       A            Y                      
#9 3            Day 21      B            Y               

推荐阅读