2016-10-13 45 views
0

我想要用tidyr分隔列以提取等级等级。列如下:与不同等级的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从右侧读取,而不是从左侧读取

+0

@ HubertL-对不起,意思是从右到左 – user12081

回答

2

尝试?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> 
  • 情况2:分隔的字符尺寸>列大小
  • 例如

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