将单列多行数据转换为多列多行数据 [英] Convert data with one column and multiple rows into multi column multi row data

查看:7
本文介绍了将单列多行数据转换为多列多行数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在R中有一个Web抓取数据的输出,如下所示

Name1
Email: email1@xyz.com
City/Town: Location1
Name2
Email: email2@abc.com
City/Town: Location2
Name3
Email: email3@pqr.com
City/Town: Location3

某些名称可能没有电子邮件或地址。我想把上面的数据转换成表格格式。输出应如下所示

Name      Email           City/Town
Name1   email1@xyz.com  Location1
Name2   email2@abc.com  Location2
Name3   email3@pqr.com  Location3
Name4                   Location4
Name5   email5@abc.com  

推荐答案

在每个名称之前插入 Name:,然后使用read.dcf读取它(如果数据来自文件,请将textConnection(Lines)替换为代码第一行中的文件名,例如"myfile.dat"。)未使用任何包。

L <- trimws(readLines(textConnection(Lines)))
ix <- !grepl(":", L)
L[ix] <- paste("
Name:", L[ix])
read.dcf(textConnection(L))

使用结尾处备注中的输入给出以下内容:

     Name    Email            City/Town  
[1,] "Name1" "email1@xyz.com" "Location1"
[2,] "Name2" NA               "Location2"
[3,] "Name3" "email3@pqr.com" NA         

注意:使用的输入。这在问题中稍作修改,以表明如果缺少电子邮件或城市/城镇,它就可以工作:

Lines <- "Name1
Email: email1@xyz.com
City/Town: Location1
Name2
City/Town: Location2
Name3
Email: email3@pqr.com"

这篇关于将单列多行数据转换为多列多行数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆