【问题标题】:Facing problem to change dataframe structure due to special characters由于特殊字符而面临更改数据帧结构的问题
【发布时间】:2018-11-08 05:10:27
【问题描述】:

我的输入数据集是

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'))

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

我使用的代码是

test_new = separate_rows(df1, "Var_B", convert = FALSE) %>%
  separate_rows("Var_A") %>%
  arrange(Var_A)

【问题讨论】:

    标签: r dataframe dplyr tidyr


    【解决方案1】:

    我们可以在separate_rows 中指定sep 并使用正则表达式查找

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

    【讨论】:

    • 非常感谢您的帮助,我能够解决同样的问题。
    • 如果输入数据集像 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','CS'), Var_B = c(' 1','2','1','2','2'))
    • @AmanSaddi 那么你可能需要sep 作为sep= "(?&lt;=[A-Z]) , (?=[A-Z][+])")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2011-04-19
    相关资源
    最近更新 更多