根据条件是否在前一行将一列分为两部分

时间:2019-02-03 15:30:57

标签: r regex dplyr tidyr stringr

我的数据框如下:

 A<- c ('Proceed', 'John Smith', 'K University, J.smith@Ku.edu', 'Arun Pandey', 'P.S University, a.pan@ps.ed', 'This is a test')

new <- data.frame (A)

我想将数据框架列A分为两行:1)包含电子邮件地址(包含数据框架中的所有行)和2)包含名称,该名称出现在电子邮件地址行之前。有什么建议么?

    email                              name 
    K University, J.smith@Ku.edu       John Smith 
    P.S University, a.pan@ps.ed        Arun Pandey 

1 个答案:

答案 0 :(得分:2)

获取其中'A'列具有@字符和grep的行的索引。然后在创建两列数据集时使用它来对数据行进行子集化

i1 <- grep("@", new$A)
data.frame(email = new$A[i1], name = new$A[i1-1])
#                         email        name
#1 K University, J.smith@Ku.edu  John Smith
#2  P.S University, a.pan@ps.ed Arun Pandey