Контекст
Я пытаюсь прочитать и привести в порядок файл Excel с несколькими заголовками / разделами, расположенными в переменных положениях. Содержимое этих заголовков необходимо добавить как переменную. Входные файлы - это относительно большие файлы Excel, отформатированные с учетом читаемости (человека), но не более того.
Входные данные:
Допустим, набор данных содержит распределение типов автомобилей (в зависимости от топлива, которое они используют) для ряда городов. Как вы увидите, в исходном файле название города используется в качестве заголовка (или разделителя, как вам нужно). Нам нужен этот заголовок как переменная. К сожалению, не все типы перечислены и некоторые значения отсутствуют. Вот пример вымышленного примера:
df <- data.frame(
col1= c("Seattle","Diesel","Gasoline","LPG","Electric","Boston","Diesel","Gasoline","Electric"),
col2= c(NA, 80 ,NA,10,10,NA,65,25,10)
)
col1 col2
1 Seattle NA
2 Diesel 80
3 Gasoline NA
4 LPG 10
5 Electric 10
6 Boston NA
7 Diesel 65
8 Gasoline 25
9 Electric 10
Желаемый результат:
city type value
1 Seattle Diesel 80
2 Seattle Gasoline NA
3 Seattle LPG 10
4 Seattle Electric 10
5 Boston Diesel 65
6 Boston Gasoline 25
7 Boston Electric 10
Моя попытка:
Самое близкое, что я получил, это использование dplyr dense_rank()
и lag()
, но это не было идеальным решением.
Любой вклад приветствуется!