#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)