如何将单元格拆分为列标题和行

时间:2018-09-13 09:54:42

标签: r split row cell multiple-columns

我有一个带有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 :(得分:0)

这是一种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