Как разбить ячейки на заголовки столбцов и строки - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть фрейм данных с 3 переменными ID, Var1 и Var2.Варианты 1 и 2 содержат несколько строк, которые можно разбить на строки.Я хотел бы сделать строки VAR 1 в заголовках и связать Var 2 с правильной строкой Var 1. Мои данные выглядят так:

ID   VAR1                                  VAR2
1    Code Employee number Personal ID     132 12345 12452     
2    Employee number Personal ID           32145 13452   
3    Code Employee number                  444 56743
4    Code Employee number Personal ID      546 89642 14667

Я хотел бы получить:

ID   Code  Employee number  Personal ID    
1    132   12345            12452   
2          32145            13452
3    444   56743 
4    546   89642            14667

1 Ответ

0 голосов
/ 13 сентября 2018

Вот подход tidyverse.

Сначала вам нужно обновить значения, которые представляют ваши будущие имена столбцов, так как R не любит пробелы в именах столбцов.

# example dataset
df = data.frame(ID = 1:2,
                VAR1 = c("Code Employee number Personal ID", "Employee number Personal ID"),
                VAR2 = c("132 12345 12452", "32145 13452"))

library(tidyverse)

df %>%
  mutate(VAR1 = gsub("Personal ID", "PersonalID", VAR1),               
         VAR1 = gsub("Employee number", "EmployeeNummber", VAR1)) %>%
  separate_rows(VAR1, VAR2) %>%
  spread(VAR1, VAR2)

#   ID Code EmployeeNummber PersonalID
# 1  1  132           12345      12452
# 2  2 <NA>           32145      13452
...