r - 根据获取前一行的 if 条件将列分成两部分

标签 r regex dplyr tidyr stringr

我有一个数据框如下:

 A<- c ('Proceed', 'John Smith', 'K University, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e44207d63677a664e457b206b6a7b" rel="noreferrer noopener nofollow">[email protected]</a>', 'Arun Pandey', 'P.S University, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c1d520c1d123c0c0f521918" rel="noreferrer noopener nofollow">[email protected]</a>', 'This is a test')

new <- data.frame (A)

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

    email                              name 
    K University, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a2e88cd1cfcbd6cae2e9d78cc7c6d7" rel="noreferrer noopener nofollow">[email protected]</a>       John Smith 
    P.S University, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b5a154b5a557b4b48155e5f" rel="noreferrer noopener nofollow">[email protected]</a>        Arun Pandey 

最佳答案

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

i1 <- grep("@", new$A)
data.frame(email = new$A[i1], name = new$A[i1-1])
#                         email        name
#1 K University, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="773d59041a1e031f373c0259121302" rel="noreferrer noopener nofollow">[email protected]</a>  John Smith
#2  P.S University, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="05642b75646b4575762b6061" rel="noreferrer noopener nofollow">[email protected]</a> Arun Pandey

关于r - 根据获取前一行的 if 条件将列分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54504444/

相关文章:

r - 箱线图单个标量变量 "by"r数据中的多个真/假变量

r - 根据 R 中其他列中的值创建一个序列

r - 在 R 中的图中添加第二个图例

r - 按阈值过滤数据,包括第一个超过阈值的值

r - 在 tibble 中的嵌套级别之间移动 : how to refer to data stored in upper levels of nesting hierarchy

r - dplyr eval 中的错误(expr、envir、enclos): object '.' not found

Javascript:正则表达式匹配/替换未按预期工作

perl - 仅将正则表达式替换应用于引用的部分

java - 正则表达式 - 使用匹配组

R(和 dplyr?) - 按组从数据帧中采样,最大样本量为 n