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

#r #tidyverse

#r #аккуратная вселенная

Вопрос:

Предположим, у нас есть этот фрейм данных:

 avg_1 avg_2 avg_3 avg_4
132   123   23    214
DF    DM    RF    RM
 

Как я могу преобразовать это в R, чтобы на выходе был новый фрейм данных, который выглядит как:

 avg key
132 DF
123 DM
23  RF
214 RM
 

Я пытался использовать pivot_longer from tidyverse , но проблема в том, что я также пытаюсь переименовать столбцы в avg and key . Кто-нибудь может помочь?

Ответ №1:

В базе R я бы попробовал:

 setNames(data.frame(t(df), row.names = NULL), c("avg", "key"))
 

Вывод

   avg key
1 132  DF
2 123  DM
3  23  RF
4 214  RM
 

Ответ №2:

Работает ли это:

 library(dplyr)
library(purrr)
library(tibble)
t(df) %>% as.tibble() %>% set_names(c('avg','key')) %>% type.convert(as.is = T)
# A tibble: 4 x 2
    avg key  
  <int> <chr>
1   132 DF   
2   123 DM   
3    23 RF   
4   214 RM   
 

Ответ №3:

И вот решение с R встроенными методами:

 x <- t(your.data.fram)
names(x) <- c("avg", "key")
 

Обратите внимание, что вы также можете захотеть изменить типы данных на числовые и множительные, если они отличаются, например

 x$avg <- as.numeric(x$avg)
x$key <- as.factor(x$key)