2013-02-03 34 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