2015-08-27 22 views
0

我正在嘗試從URL中讀取一個表而不先下載文件。 URL指向需要訪問授權的.txt文件。read.table()從URL中獲得所需的授權R

正如我所看到的,read.table()不提供URL的授權選項。所以我試着用getURL()分別getURLContent()。授權效果很好,我可以將.txt的內容下載爲一個大字符串。數據以空格分隔,每行都以\ n結束。 但我未能從字符串中分離數據。

中的一個片段:

2012  25  494624.00 515578.00 1010202.00\n2012  26  481741.00 501734.00 983475.00\n2012  27  482058.00 501814.00 983872.00\n2012  28  487687.00 505376.00 993063.00\n2012  29  500999.00 518991.00 1019990.00\n2012  30  501696.00 514919.00 1016615.00\n2012  31  505979.00 519961.00 1025940.00\n2012  32  481919.00 495490.00 977409.00\n2012  33  475873.00 489363.00 965236.00\n2012  34  472357.00 485357.00 957714.00\n2012  35  466101.00 478564.00 944665.00\n 

那麼,有沒有一個很好的方式來獲得data.frame出這個數據的?問題不在於如何從字符串中獲取數據框架 - 我可以自己弄清楚。問題是如果可以使用這樣的read.table這樣的東西。

很遺憾,我無法將我的訪問密碼分享給.txt文件,所以我很高興提供有用的提示。

回答

0

帶上你的字串

mystring <- "2012  25  494624.00 515578.00 1010202.00\n2012  26  481741.00 501734.00 983475.00\n2012  27  482058.00 501814.00 983872.00\n2012  28  487687.00 505376.00 993063.00\n2012  29  500999.00 518991.00 1019990.00\n2012  30  501696.00 514919.00 1016615.00\n2012  31  505979.00 519961.00 1025940.00\n2012  32  481919.00 495490.00 977409.00\n2012  33  475873.00 489363.00 965236.00\n2012  34  472357.00 485357.00 957714.00\n2012  35  466101.00 478564.00 944665.00\n" 

使用分割你的字符串「\ n

mystring <- strsplit(mystring, split= "\n") 

創建計數器列表,通過你的字符串SUB OUT單一空間的多個空格循環,分割各按空格分隔符排列成列

allstring <- list() 
count <- 1 
for (i in 1:length(mystring[[1]])){ 
a<- gsub("^ *|(?<=) | *$", "", mystring[[1]][i], perl = TRUE) 
b <- do.call(rbind, strsplit(a, " ")) 
allstring[[count]] <-b  
count <- count + 1 
} 

將列表轉換爲data.frame

allstring.df<- do.call(rbind.data.frame, allstring) 
+0

謝謝你,絕對有幫助。但實際上這不是問題。請注意我的編輯。 –