R / Excel / Tableau - сводный заголовок и субтитры - PullRequest
0 голосов
/ 10 мая 2018

Я хотел бы повернуть таблицу с заголовками и субтитрами, как это:

     November November December December
Firm On-time  Not      On-time  Not
A    67%      33%      23%      77%
B    100%     0%       50%      50%
     etc etc

Таким образом, я получаю

Firm Month    status  pct
A    November on-time 67%
A    November Not     33%
A    December on-time 23%
A    December Not     77%
B etc etc

Я бы хотел, чтобы это было сделано в любой Таблице, Rили Excel

Не могли бы вы мне помочь, пожалуйста?

Если об этом уже спрашивали, пожалуйста, напишите мне, так как я не смог его найти.

1 Ответ

0 голосов
/ 10 мая 2018

Будет намного проще, если входной набор данных будет в стандартном формате (то есть уникальные имена столбцов, без «подзаголовков»), но мы все равно можем преобразовать его в вывод желаемого с помощью таких инструментов, как tidyverse:

library(tidyverse)

df %>%
  rownames_to_column(var = "Firm") %>%
  gather(Month, pct, -Firm) %>%
  mutate(Month = sub('\\.\\d$', '', Month),
         status = ifelse(Firm == "Firm", pct, NA)) %>%
  fill(status) %>%
  filter(Firm != "Firm") %>%
  arrange(Firm) 

Результат:

  Firm    Month  pct  status
1    A November  67% On-time
2    A November  33%     Not
3    A December  23% On-time
4    A December  77%     Not
5    B November 100% On-time
6    B November   0%     Not
7    B December  50% On-time
8    B December  50%     Not

Данные:

df = read.table(text="     November November December December
                Firm On-time  Not      On-time  Not
                A    67%      33%      23%      77%
                B    100%     0%       50%      50%", header = TRUE, row.names = 1)
...