使用不同长度的 tidyr 拆分列

Split column with tidyr with different lenghts

我想用tidyr分开一列来提取年级。该列如下所示:

School.Name
School A ES
SchoolB MS

没有标准的学校命名方式,所以当我使用单独的

separate(DF, School.Name,c("School.Name","Number","Grade Level")

我明白了

School.Name  Number   Grade Level
School           A         ES
SchoolB         MS         NA

有没有办法告诉 tidyr 从右而不是从左阅读

尝试?separate:

separate(DF, School.name, c("School.Name","Number","Grade Level"), fill = "left")

然后你得到如下结果:

  School.Name  Number Grade Level
1      school       A          ES
2        <NA> schoolB          MS

编辑:

参数fill控制分隔字符大小与列大小不匹配时,可选warn, right, left.

  1. 案例 1:分隔字符大小 < 列大小

例如

"schoolB MS" to C("A", "B", "C"), fill = "left" : <NA> schoolB MS


"schoolB MS" to C("A", "B", "C"), fill = "right" : schoolB MS <NA>
  1. 情况 2:分隔字符大小 > 列大小

例如

"schoolB MS" to C("A"), fill = "warn" : schoolB #default drop extra from the right