R使用getURL数据到数据帧

时间:2017-03-13 15:01:01

标签: r dataframe rcurl

我从网上下载数据但后来不知道如何将其更改为数据框或任何有用的内容。有没有人有什么建议?这是代码:

library(RCurl) 
myfile = getURL(http://www.stat.ufl.edu/~winner/data/lister_ul.dat,
ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)

如果我使用它:

A = read.csv(textConnection(myfile), header = F)

然后R了解这一点:

c("1 1 1")

作为第一行而不是:

c(1, 1, 1).

这不是我需要使用的工作

colnames(A) = c("col1", "col2", "col3")

并且找不到使用

进行繁琐工作的解决方法
unlist(strsplit(A))

Ughh !!

任何建议将不胜感激。或者,如果有必要的话,我也可以编写自己的繁琐功能。

格温

3 个答案:

答案 0 :(得分:2)

这有帮助吗?

df <- read.table('http://www.stat.ufl.edu/~winner/data/lister_ul.dat')

答案 1 :(得分:1)

你很亲密。由于我没有安装- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar但我确实RCurl(使用httr),我将从此开始。不过,这是一个没有实际意义的问题,因为我得到的内容与你一样。

另外,@ udden2903的答案更直接,我假设这是一个简化的问题,你可能需要继续使用{{1的替代提取方法}} 不允许。 (要继续使用curl并支持其他一些操作,例如身份验证,请阅读其文档。)

read.table(URL)

所以,httr现在就是你的library(httr) myfile = GET("http://www.stat.ufl.edu/~winner/data/lister_ul.dat") str(content(myfile)) # No encoding supplied: defaulting to UTF-8. # chr "1 1 1\n1 0 11\n0 1 6\n0 0 6\n" 。第一个技巧是您的数据不是以逗号分隔的(&#34; csv&#34;),因此使用content(myfile)是必要的。其次,您需要指定第一行不是标题。

myfile

现在只需指定标题。

read.table

答案 2 :(得分:0)

仅使用基本包功能:

as.data.frame(
    do.call("rbind", strsplit(
        readLines("http://www.stat.ufl.edu/~winner/data/lister_ul.dat"),
        "\\s+"))
)

  V1 V2 V3
1  1  1  1
2  1  0 11
3  0  1  6
4  0  0  6

我们所做的是从网页上读取原始行,然后通过返回的字符之间的空格拆分每一行,然后通过在每行上调用rbind创建一个矩阵...然后我们将其转换为数据框。