1. Query 我正在使用sas个数据集(SAS数据集包含可以读取的labelled::get_variable_labels(df)个标签),并try 创建gt个表,其中column namelabels都可以位于数据的顶部.但我不确定如何做到这一点,也无法在网上找到任何相关的东西.

默认情况下,gt使用lables作为数据头.

enter image description here

数据

df %>% head()
# A tibble: 6 × 357
  SPOUSARR SPOUSE NRESPOUS HHSPOUSE SPOUSEFW SPOUSENF HHKID
     <dbl>  <dbl>    <dbl>    <dbl>    <dbl>    <dbl> <dbl>
1       NA      0       NA        0       NA       NA     0
2       NA      0       NA        0       NA       NA     0
3       NA      1        3        0       NA       NA     0
4       NA      0       NA        0       NA       NA     6
5       NA      1        0        1       NA       NA     2
6       NA      1        3        0       NA       NA     4

below code gives me the label names in the 数据set:

labelled::get_variable_labels(df)

$SPOUSARR
[1] "YEAR SPOUSE ARRIVAL IN US"

$SPOUSE
[1] "SPOUSE ON FAMILY GRID"

$NRESPOUS
[1] "NON HH RESIDENT SPOUSE"

$HHSPOUSE
[1] "SPOUSE IN HH"

2. Desired output: Structure of table that I am trying to achieve is like below: enter image description here

3. Sample 数据 Source used in this post is downloaded from this 数据 link government source https://www.dol.gov/agencies/eta/national-agricultural-workers-survey/数据/files-sas.

4. packages & code used:

library(tidyverse)
library(haven)
library(gt)
library(labelled)

# after download & unzipping 15mb file
df <- haven::read_sas("naws_all.sas7bdat")

# to view table
df %>% head() %>% gt()

# to view lables
labelled::get_variable_labels(df)

如果能帮上忙我会感激不尽的.

推荐答案

从这answer个调整到fun()个,我们可以try

# downloading and preparing data
if(exists("hasRun") == FALSE) {
  temp = tempfile()
  temp2 = tempfile()
  download.file("https://www.dol.gov/sites/dolgov/files/ETA/naws/pdfs/naws_all.zip", temp) 
  unzip(zipfile = temp, exdir = temp2)
  df = haven::read_sas(file.path(temp2, list.files(temp2)))
  unlink(c(temp, temp2))
  hasRun = TRUE 
}
X = df[1:3, 1:3]

fun = \(df, column, label) {
  cols_list = as.list(label) |> setNames(column)
  df |> 
    gt::gt() |>
    gt::cols_label(.list = cols_list, .fn = gt::md) |>
    gt::cols_align(align = "left")
}
fun(X, colnames(X), 
    paste0(colnames(X), "<br>", labelled::get_variable_labels(X)))

赠送

enter image description here

R相关问答推荐

更新合适的R mgcv::bam模型报告无效类型(关闭).'';错误

为什么当我try 在收件箱中使用合并功能时会出现回收错误?

行式dppr中的变量列名

使用tidyverse / Mutate的存款账户余额

向gggplot 2中的数据和轴标签添加大写和星号

selectInput不返回ALL,并将因子转换为shiny 的数字

将小数分隔符放在R中的前两位数字之后

用R ggplot2求上、下三角形中两个变量的矩阵热图

在GG图中绘制射线的自动程序

在多页PDF中以特定布局排列的绘图列表不起作用

我如何go 掉盒子图底部的数字?

在gggraph中显示来自不同数据帧的单个值

如何使用FormC使简单算术运算得到的数字是正确的?

如何根据未知数的多列排除重复行

如何在使用Alpha时让geom_curve在箭头中显示恒定透明度

如何调整一个facet_work()面板内的框图和移动标签之间的水平宽度?

如何将EC50值绘制在R中的剂量-react 曲线上?

R:水平旋转图

用逗号拆分字符串,并删除一些字符

如何在类应用函数中访问函数本身