由于特殊字符而面临的更改数据框结构的问题

时间:2018-11-08 05:10:28

标签: r dataframe dplyr tidyr

我的输入数据集是

g2f <- reactive({
    if (input$year  == "2014") {
      filtered_data <-  g2f_latlong[g2f_latlong$year == 2014, ]
    }else if (input$year == "2015") {
      filtered_data <-  g2f_latlong[g2f_latlong$year == 2015, ]
    }else if (input$year == "2016") {
      filtered_data <-  g2f_latlong[g2f_latlong$year == 2016, ]
    }else if (input$year == "All") {
      filtered_data <-  g2f_latlong
    }else {filtered_data <-  g2f_latlong}
    return(filtered_data)
  })

所需的输出是

df1 = data.frame(Var_A = c('A&B X+Y','C S'),
                 Var_B = c('1,2','2'))

“&”,“ +”和空格等特殊字符的存在构成问题

我正在使用的代码是

df2 = data.frame(Var_A = c('A&B','A&B','X+Y','X+Y','C S'),
                 Var_B = c('1','2','1','2','2'))

1 个答案:

答案 0 :(得分:2)

我们可以在sep中使用正则表达式环视来指定separate_rows

df1 %>% 
   separate_rows(Var_B) %>% 
   separate_rows(Var_A, sep= "(?<=[A-Z]) (?=[A-Z][+])") %>%
   arrange(Var_A)