#r #r-table
Вопрос:
У меня есть следующий код для создания таблицы R
. Как я могу добавить единицу измерения в Height
и Weight
и BMI
? (так что это было бы похоже Height (in)
на и Weight (lb)
и BMI (kg/m2)
)
Height <- c(66, 73, 65, 68, 71)
Weight <- c(121,191,177,159,152)
#pound to kilogram and inche to meter
#BMI=kg/m^2
BMI = Weight * 0.45/(Height * 0.02)^2
expn <- data.frame (Height, Weight, BMI)
knitr::kable (expn, caption = "Body Measurments", align = c ("c", "c"))
Ответ №1:
Если вы имеете в виду добавление единиц измерения к элементам в таблице,
expn <- data.frame (Height, Weight, BMI) %>%
mutate(Height = paste(Height, "in"),
Weight = paste(Weight, "lb"),
BMI = paste(BMI, "kg/m2"))
knitr::kable (expn, caption = "Body Measurments", align = c ("c", "c"))
Table: Body Measurments
| Height | Weight | BMI |
|:------:|:------:|:----------------------:|
| 66 in | 121 lb | 31.25 kg/m2 |
| 73 in | 191 lb | 40.3218239819854 kg/m2 |
| 65 in | 177 lb | 47.1301775147929 kg/m2 |
| 68 in | 159 lb | 38.6840397923875 kg/m2 |
| 71 in | 152 lb | 33.9218409045824 kg/m2 |
В tibble
,
units <- c("in", "lb", "kg/m2")
expn <- data.frame (Height, Weight, BMI)%>% map2_dfc(units, ~set_units(.x, .y, mode = "standard"))
expn
Height Weight BMI
[in] [lb] [kg/m2]
1 66 121 31.25000
2 73 191 40.32182
3 65 177 47.13018
4 68 159 38.68404
5 71 152 33.92184
С помощью kableExtra
,
expn <- data.frame (Height, Weight, BMI)
colNames <- names(expn)
units <- c("$lb$", "$in$", "$kg/m2$")
knitr::kable (expn, caption = "Body Measurments", align = c ("c", "c"), col.names = units, escape = F) %>%
kableExtra::add_header_above(header = colNames, line = F, align = "c")
Комментарии:
1. Спасибо. Можно ли добавить единицу измерения только в заголовки, а не в каждую отдельную ячейку?
2. @TinaJ В
tibble
формате, я могу , но послеknitr::kable
, единицы измерения идут рядом со значениями.3. Первый из них выдает ошибку:
Error in data.frame(Height, Weight, BMI) %>% mutate(Height = paste(Height, : could not find function "%>%" Execution halted
4. @TinaJ О…Мне действительно жаль. Вам может понадобиться
library(dplyr)
иlibrary(units)
мой код.5. @TinaJ Там тоже использовался метод
kableExtra
. Я добавляю этот код выше.
Ответ №2:
Если все, что вы хотите сделать, это добавить единицы измерения в имена столбцов, которые вы могли бы использовать colnames
, и paste0
.
Height <- c(66, 73, 65, 68, 71)
Weight <- c(121,191,177,159,152)
#pound to kilogram and inche to meter
#BMI=kg/m^2
BMI = Weight * 0.45/(Height * 0.02)^2
expn <- data.frame (Height, Weight, BMI)
colnames(expn)<-paste0(colnames(expn), c(" (in)", " (lb)", " (kg/m2)"))
knitr::kable (expn, caption = "Body Measurements", align = c ("c", "c"))
Таблица: Размеры тела
Высота (дюйм) | Вес (фунт) | ИМТ (кг/м2) |
---|---|---|
66 | 121 | 31.25000 |
73 | 191 | 40.32182 |
65 | 177 | 47.13018 |
68 | 159 | 38.68404 |
71 | 152 | 33.92184 |
Комментарии:
1. Нужны ли для этого дополнительные библиотеки?
2. Нет, для этого не нужны дополнительные библиотеки.