2013-02-03 39 views
3

我想要做一個網頁搜索,將返回幾個數據框(不同大小),基於郵政編碼。我想將每個搜索結果轉儲到以郵政編碼命名的數據框中。如何動態地爲數據框分配名稱?

require(XML) 
zip <- c(zip1, zip2, zip3, etc) 
k <-4  #index for the table that needs to be retrieved 

for (i in 1:length(zip)) { 
url <- paste(text1, zip[i], text2, sep="") 
resultsdataframe <- data.frame (readHTMLTable(url), which = k) 
} 

所以我的問題是:我怎麼能得到resultsdataframe不同的名字,每一個動態地從拉鍊[I]命名?非常感謝。

+1

http://stackoverflow.com/questions/6034655/r-how-to-convert-string-to-variable-name,http://cran.r-project .ORG/DOC/FAQ/R-的faq.html#如何燦我點亮是一個字符串 - 到 - A-variable_003f –

回答

2

您可以使用sapply,它會爲您分配名稱。

sapply(zip, function(x) 
{ 
    url <- paste(text1, x, text2, sep="") 
    data.frame (readHTMLTable(url), which = k) 
} 

例如

zip <- paste('zip',1:5, sep ='') 
ll <- sapply(zip, function(x) 
    { 
    data.frame() 
    }) 

ll 
$zip1 
data frame with 0 columns and 0 rows 

$zip2 
data frame with 0 columns and 0 rows 
.... 

無需使用assign。你可以像這樣訪問你的列表

ll[['zip1']] 
data frame with 0 columns and 0 rows