我有一个数据框如下:
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/