微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建用于使用for和read.csv获取数据的函数

如何解决创建用于使用for和read.csv获取数据的函数

我正在尝试创建一个功能,以直接从该机构的网站捕获数据集和数据。

我可以使用()函数为每个数据系列生成url,但是当使用read.csv和return函数时,它仅返回第一个结果。

使用print()函数时,它将重新安装所有期望的结果,它们是独立的,但是我无法将其保存为对象。我尝试过使用几种方法来使用函数,但是根本无法使用

有人可以帮忙吗

getData <- 
        function(serie,start.date='',final.date='',name=''){
                for(i in serie){
                urlbase <- 
                        list(paste('http://example',serie,'part1','&start.date=',start.date,'&final.date=',final.date,sep = ''))
                #return(urlbase)
                }
                for(n in 1:length(urlbase[[1]])){
                        df  <-  list()
                        df <- list(read.csv(urlbase[[1]][n],sep = ';',dec = ',',nrows = 2,col.names = c('Date',name[n])
                        )
                        )
                        return(df)
                }    
                
}
url.test <- getData(serie =  c('1','2','4'),start.date = '01/01/2013',final.date =  '01/07/2020',name = c('1','3','4'))

每个输入序列的API地址输出均已成功执行。

> url.test
[[1]]
[1] "http://example25351part1&start.date=01/01/2013&final.date=01/07/2020"
[2] "http://example25352part1&start.date=01/01/2013&final.date=01/07/2020"
[3] "http://example25353part1&start.date=01/01/2013&final.date=01/07/2020"
[4] "http://example27645part1&start.date=01/01/2013&final.date=01/07/2020"

使用return函数输出仅返回列表中的第一项

> url.test
[[1]]
        Data 1
1 01/01/2013 19.94
2 01/02/2013 19.98

使用打印功能输出唯一地返回所有值

[[1]]
        Date 1
1 01/01/2013 19.94
2 01/02/2013 19.98

[[1]]
        Date 2
1 01/01/2013 15.22
2 01/02/2013 15.12

[[1]]
        Date 3
1 01/01/2013 25.70
2 01/02/2013 25.93

[[1]]
        Date 4
1 01/01/2013 17.58
2 01/02/2013 17.42

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。