Как объединить имена столбцов с фреймом данных (или кабелем) в R?

Новичок в R здесь. В Excel, если вы щелкните и перетащите, чтобы выбрать несколько ячеек, вы можете нажать «объединить ячейки», чтобы преобразовать несколько ячеек в одну. Подобное мышление, я хочу сделать это в R.

Возьмите этот фрейм данных для этого примера:

library(kableExtra)
library(magrittr)
library(knitr)
We_Love_Colours <- data.frame(
  Name = c("Colours", "", ""),
  G = c("green","green","green"),
  B = c("blue", "blue", "blue"),
  R = c("red", "red", "red"),
  Y = c("yellow", "yellow", "yellow"),
  P = c("purple", "purple", "purple"),
  C = c("cyan", "cyan", "cyan")
) 

kable(We_Love_Colours, format = "html", escape = FALSE, row.names = FALSE, caption = "Table 1.0: Rainbow?") %>%
  kable_styling(
    bootstrap_options = c("striped"),
    full_width = FALSE,
    position = "center"
  )

И результат должен выглядеть примерно так, как изображение, которое я загружаю сюда.

Я хотел бы объединить имена столбцов «G», «B», «R», «Y», «P», «C» в одну ячейку и написать «Цвета». Как я могу это сделать?

Как и во всем, я попытался получить помощь от ChatGPT, и он предложил добавить эту часть:

kable(We_Love_Colours, format = "html", escape = FALSE, row.names = FALSE, caption = "Table 1.0: Rainbow?") %>%
  add_header_above(c(" " = 1, "Colours" = 6)) %>%
  kable_styling(
    bootstrap_options = c("striped"),
    full_width = FALSE,
    position = "center"

Однако это просто создало новую строку над именами столбцов, а «Цвета» нависли над именами столбцов. Я хотел заменить эти имена столбцов одним именем столбца.

Каков ваш ожидаемый результат? Думаю,chatGPT, как и все мы, не понял, чего вы хотите.

Edward 26.08.2024 04:07

Это помогает? stackoverflow.com/q/36206042/12957340

jared_mamrot 26.08.2024 06:57

@Эдвард Привет! Когда я публиковал это, я загрузил ссылку на imgur, содержащую два изображения. Позже в тот же день оно было отредактировано и заменено только одним изображением, чего я и стремился достичь. Возможно, это смутило некоторых читателей. ¯_(ツ)_/¯ Чтобы описать второе изображение, которого здесь нет, я связал документ с кодом R, который написал здесь, и второе изображение было его скриншотом. В таблице были столбцы, содержащие названия цветов, но каждый столбец имел имя столбца вверху. Мой запрос (на который теперь был дан ответ) требовал заменить их одним именем столбца.

MuradV 26.08.2024 22:04
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Один из вариантов — удалить имена столбцов, используя col.names=NULL, как предложено здесь, а затем использовать add_header_above, чтобы добавить объединенный заголовок:

library(kableExtra)
library(magrittr)
library(knitr)

kable(We_Love_Colours,
  format = "html", escape = FALSE,
  row.names = FALSE,
  col.names = NULL,
  caption = "Table 1.0: Rainbow?"
) %>%
  kable_styling(
    bootstrap_options = c("striped"),
    full_width = FALSE,
    position = "center"
  ) %>%
  add_header_above(
    c(" " = 1, "Colours" = 6),
    line = FALSE
  )

Ага! Это ответило на мой вопрос. Большое спасибо! :D

MuradV 26.08.2024 21:48

Другие вопросы по теме