Как реструктурировать эту таблицу для преобразования всех имен строк в имена столбцов? - PullRequest
0 голосов
/ 06 апреля 2020

Это мой набор данных:

enter image description here

Какую функцию я должен использовать, чтобы изменить его на четыре столбца с именами столбцов, Доходы, Валовая прибыль, Net доход и год? Мне просто нужна помощь с функцией и кодом, который я просто забываю, как использовать. Мне не нужен окончательный вывод. Большое спасибо заранее!

Ответы [ 2 ]

2 голосов
/ 06 апреля 2020

Попробуйте это base R решение, используя t, которое транспонирует строки в столбцы и наоборот:

Решение :

df1 <- t(df)
df2 <- as.data.frame(df1[-1,])
colnames(df1) <- c(df$...1)

Результат :

df2
           Revenues Gross profit Net income
year2018  0.1331016   -0.9511485 -1.1987364
year2019 -0.8939590   -0.5610915 -1.6367285

Воспроизводимые данные :

df <- data.frame(
  ...1 =c("Revenues", "Gross profit", "Net income"),
  year2018 = rnorm(3),
  year2019 = rnorm(3))
df
          ...1   year2018   year2019
1     Revenues  0.1331016 -0.8939590
2 Gross profit -0.9511485 -0.5610915
3   Net income -1.1987364 -1.6367285
1 голос
/ 06 апреля 2020

Попробуйте это. Сначала pivot_longer, затем pivot_wider:

library(dplyr)
library(tidyr)

df <- tibble( 
  `...1` = c("Revenue", "Gross Profit", "Net income"),
  `2018` = runif(3),
  `2019` = runif(3)
)

df %>% 
  rename(var = 1) %>% 
  pivot_longer(-var, names_to = "Year") %>%
  pivot_wider(names_from = var, values_from = value)
#> # A tibble: 2 x 4
#>   Year  Revenue `Gross Profit` `Net income`
#>   <chr>   <dbl>          <dbl>        <dbl>
#> 1 2018   0.0735          0.286        0.902
#> 2 2019   0.205           0.551        0.348

Создано в 2020-04-06 пакетом Представить (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...