Как все столбцы фрейма данных могут быть преобразованы в один список в R?

#r #dplyr #r-markdown #flextable

Вопрос:

Это непонятная просьба. Я пытаюсь выполнить условное форматирование в гибкой форме для документа RMarkdown, и, короче говоря, мне нужен список значений, полученных из фрейма данных.

Вот пример фрейма данных:

 df <- tibble(COL_1 = c(1, 2, 3),
             COL_2 = c("A", "B", "C"),
             COL_3 = c("Peach", "Plum", "Pear"))

> df
# A tibble: 3 x 3
  COL_1 COL_2 COL_3
  <dbl> <chr> <chr>
1     1 A     Peach
2     2 B     Plum 
3     3 C     Pear 
 

Я ищу код для достижения следующего (я не зависим от типа значений):

 "1", "2", "3", "A", "B", "C", "Peach", "Plum", "Pear"
 

У кого-нибудь есть решение? Бонусные баллы, если это дружелюбно к dplyr.

Кроме того, если у кого-нибудь есть аккуратный, чистый способ форматирования цвета и фона большого количества значений во множестве столбцов в гибкой таблице, я был бы признателен за помощь. Я сомневаюсь, что решение, которое я ищу, является оптимальным.

Ответ №1:

unlist воля помогает

 df %>% unlist %>% as.vector
[1] "1"     "2"     "3"     "A"     "B"     "C"     "Peach" "Plum"  "Pear" 
 

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

1. Идеальное решение и бонусные баллы за то, что оно вписывается в мой трубопровод dplyr.

Ответ №2:

Другой вариант-перейти к матрице и свернуться в вектор с. c

 library(magrittr)

df %>% as.matrix() %>% c
#[1] "1"     "2"     "3"     "A"     "B"     "C"     "Peach" "Plum"  "Pear" 
 

Ответ №3:

Мы можем stack и pull ценности

 library(dplyr)
stack(df) %>% 
   pull(values)
#[1] "1"     "2"     "3"     "A"     "B"     "C"     "Peach" "Plum"  "Pear" 
 

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

1. Стек был функцией, которую я изначально искал, спасибо. Это, вероятно, самый интуитивный подход, особенно с точки зрения того, кто читает код.