使用R从web导入数据

使用R从web导入数据,r,R,我刚刚开始使用R,所以这可能是一个非常愚蠢的问题。我正在尝试使用以下方式导入数据: emdata=read.csv(file="http://lottery.merseyworld.com/cgi-bin/lottery?days=19&Machine=Z&Ballset=0&order=1&show=1&year=0&display=CSV",header=TRUE) 我的问题是,它将csv文件读入一列(顺便说一句,彩票数据只是因为它可以公开下

我刚刚开始使用R,所以这可能是一个非常愚蠢的问题。我正在尝试使用以下方式导入数据:

emdata=read.csv(file="http://lottery.merseyworld.com/cgi-bin/lottery?days=19&Machine=Z&Ballset=0&order=1&show=1&year=0&display=CSV",header=TRUE)

我的问题是,它将csv文件读入一列(顺便说一句,彩票数据只是因为它可以公开下载-作为一种练习来理解我在R中可以做什么和不能做什么),而不是将其格式化为多个数据列。有人介意帮忙吗,尽管这很琐碎,但是对于一个声称是csv格式的页面来说,这是一种令人讨厌的行为。您可以跳过前5行,这将导致R正确读取(大部分)文件的其余部分

emdata=read.csv(file=...., header=TRUE, skip=5)
通过查看源代码,我得到了要跳过的行数。你仍然需要删除中间和结尾的CURFT,然后清理列(它们都是因为嵌入文本的因素)。

将页面保存到硬盘上,编辑页面以删除所有无用的位,然后导入页面会更容易


。。。要回答您真正的问题,您可以直接从web导入数据。一般来说,无论您在哪里读取文件,都可以替换一个完全限定的URL——R足够聪明,可以做正确的事情[tm]。这个特定的URL恰好特别混乱。

您可以从给定的URL读取文本,过滤掉讨厌的行,然后将结果作为CSV读取,如下所示:

lines <- readLines(url("http://lottery.merseyworld.com/cgi-bin/lottery?days=19&Machine=Z&Ballset=0&order=1&show=1&year=0&display=CSV"))
read.csv(text=lines[grep("([^,]*,){5,}", lines)])

行作为附加问题。是否可以从下载中排除数据?例如,包含日期的列。谢谢。很高兴我没有完全愚蠢!