r字符串解析挑战

时间:2016-04-27 04:38:33

标签: r string transform

我正在处理包含字符串的列,如下所示

       Col1
       ------------------------------------------------------------------
       Department of Mechanical Engineering, Department of Computer Science
       Division of Advanced Machining, Center for Mining and Metallurgy
       Department of Aerospace, Center for Science and Delivery

我要做的是分隔包含以Department,Divison或Center开头的单词的字符串,直到逗号(,)最终输出应该如下所示

       Dept_Mechanical_Eng   Dept_Computer_Science   Div_Adv_Machining   Cntr_Mining_Metallurgy   Dept_Aerospace  Cntr_Science_Delivery
       1                     1                       0                    0                        0              0
       0                     0                       1                    1                        0              0
       0                     0                       1                    1                        1              1

我为了预期的输出而仅仅为了审美目的而屠杀了实际的名字。任何有关解析此字符串的帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

这与我刚刚列出另一个文本示例的问题非常类似。你和提问者在同一个班级吗? Count the number of times (frequency) a string occurs

 inp <- "Department of Mechanical Engineering, Department of Computer Science
        Division of Advanced Machining, Center for Mining and Metallurgy
        Department of Aerospace, Center for Science and Delivery"
 inp2 <- factor(scan(text=inp,what="",sep=","))
#Read 6 items
 inp3 <- readLines(textConnection(inp))

as.data.frame( setNames( lapply(levels(inp2), function(ll) as.numeric(grepl(ll, inp3) ) ), trimws(levels(inp2) )) )
  Department.of.Aerospace Division.of.Advanced.Machining
1                       0                              0
2                       0                              1
3                       1                              0
  Center.for.Mining.and.Metallurgy Center.for.Science.and.Delivery
1                                0                               0
2                                1                               0
3                                0                               1
  Department.of.Computer.Science Department.of.Mechanical.Engineering
1                              1                                    1
2                              0                                    0
3                              0                                    0