簡體   English   中英

knitr::kable 表中靈活的列名

[英]Flexible Column names in knitr::kable table

問題:

有一個包含許多變量的大 df。 試圖創建一個與原始變量不同的列名的匯總 kable 表。

library(knitr)
library(dplyr)

knitr::kable(iris %>% head(),
             col.names = c("Sepal length", "Sepal width", "Petal length",
                           "Petal width", "Species"))

| Sepal length| Sepal width| Petal length| Petal width|Species |
|------------:|-----------:|------------:|-----------:|:-------|
|          5.1|         3.5|          1.4|         0.2|setosa  |
|          4.9|         3.0|          1.4|         0.2|setosa  |
|          4.7|         3.2|          1.3|         0.2|setosa  |
|          4.6|         3.1|          1.5|         0.2|setosa  |
|          5.0|         3.6|          1.4|         0.2|setosa  |
|          5.4|         3.9|          1.7|         0.4|setosa  |

我希望能夠選擇特定的列而不必通過以下方式手動重命名它們:

knitr::kable(iris %>% filter(Species == "setosa") %>% 
           select(Sepal.Length, Sepal.Width, Species) %>% head(),
         col.names = c("Sepal length", "Sepal width", "Species"))

| Sepal length| Sepal width|Species |
|------------:|-----------:|:-------|
|          5.1|         3.5|setosa  |
|          4.9|         3.0|setosa  |
|          4.7|         3.2|setosa  |
|          4.6|         3.1|setosa  |
|          5.0|         3.6|setosa  |
|          5.4|         3.9|setosa  |

有沒有辦法只指定一次我希望“Sepal.Length”為“Sepal Length”。 這樣,如果我包含某個變量,我的代碼將識別該變量並自動將其重命名為新的列名,而不必返回手動執行此操作?

為什么不預先重命名列,並在后續調用中使用格式化的列名來filterselect

library(tidyverse)

rename(iris, `Sepal length` = Sepal.Length, `Sepal width` = Sepal.Width) %>% 
  filter(Species == "setosa") %>% 
  select(contains("Sepal"), Species) %>% 
  head() %>% 
  knitr::kable()


| Sepal length| Sepal width|Species |
|------------:|-----------:|:-------|
|          5.1|         3.5|setosa  |
|          4.9|         3.0|setosa  |
|          4.7|         3.2|setosa  |
|          4.6|         3.1|setosa  |
|          5.0|         3.6|setosa  |
|          5.4|         3.9|setosa  |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM