добавьте заголовок в таблицу и преобразуйте в таблицу flex

#r

Вопрос:

Я пытаюсь добавить заголовок над таблицей.

цель состоит в том, чтобы добавить заголовок над именем столбца»#», а также я хочу преобразовать таблицу в таблицу flex для применения гибких тем.

также я хочу сгруппировать таблицу по типу автомобиля . любое решение для этого

 df <- data.frame(names= c("Mazda RX4",  "Mazda RX4 Wag",    "Datsun 710",   "Hornet 4 Drive",   "Hornet Sportabout",    "Valiant",  "Duster 360",   "Merc 240D",    "Merc 230", "Merc 280", "Merc 280C",    "Merc 450SE",   "Merc 450SL",   "Merc 450SLC",  "Cadillac Fleetwood"),
                          score = c(21, 21, 22.8,   21.4,   18.7,   18.1,   14.3,   24.4,   22.8,   19.2,   17.8,   16.4,   17.3,   15.2,   10.4) )


table1 <- df %>% rownames_to_column("#") %>% rename("Car type" = names) %>% 
  mutate(score = as.character(score)) %>% 
  add_row(`Car type` = "", score = "form", .before = "#") 
 

Комментарии:

1. Вы получаете эту ошибку, потому .before что ожидаете (числовой) индекс строки. КСТАТИ: dplyr::add_row предназначен для добавления строк в фрейм данных, а не для добавления заголовка поверх имен столбцов. Может быть, ты хочешь flextable::add_header

Ответ №1:

 df <- data.frame(names= c("Mazda RX4",  "Mazda RX4 Wag",    "Datsun 710",   "Hornet 4 Drive",   "Hornet Sportabout",    "Valiant",  "Duster 360",   "Merc 240D",    "Merc 230", "Merc 280", "Merc 280C",    "Merc 450SE",   "Merc 450SL",   "Merc 450SLC",  "Cadillac Fleetwood"),
                          score = c(21, 21, 22.8,   21.4,   18.7,   18.1,   14.3,   24.4,   22.8,   19.2,   17.8,   16.4,   17.3,   15.2,   10.4) )

table1 <- df %>% rownames_to_column("#") %>% rename(Car_type = names) %>% 
  mutate(Class = ifelse(score>21,"Top Class",ifelse(score>18,"Med Class","Low Class")))%>%
  mutate(Class = as.factor(Class))%>%
  group_by(Class)%>%
  arrange(Class)%>%
  select(Class,everything())%>%
  ungroup()
table1
 

Я не знаю, можем ли мы объединить строки или даже столбцы в R, как вы сделали для класса. Это, вероятно, сделано в Excel.
Вы должны сгруппировать столбцы и расположить их, если хотите что-то близкое к этому

Также не уверен в том, что вы подразумеваете под заголовком, но если вы хотите изменить имя столбца, вы можете использовать функцию переименования (ваше использование не будет работать, так как в противном случае не может быть пробелов, иначе это создаст проблему при ссылке (это недостаток в R, вы должны в основном заменять пробелы на . или _ перед работой))

Комментарии:

1. Я также хочу добавить заголовок выше. как видно на рисунке выше, «Форма»

2. Что вы имеете в виду под заголовком. В R есть только имена столбцов

3. например, в желаемой выходной таблице один заголовок для имен («#», автомобиль,оценка), а над ним требуется другой заголовок с именами c(«»,»»,Форма)

4. О, хорошо. Я не думаю, что мы сможем это сделать. Также я не вижу в этом необходимости.