R 语言中,不管是安装包,还是下载数据,很多时候都会用到download.file这个函数。如果你在安装包或者下载数据过程中出现中断,或者异常,想要判断是远程源服务器的问题,还是自身服务器的问题,还是网络故障,甚至于你想要换一种方法去继续你的下载,了解一下download.file还是很有帮助的。

上面的链接是关于download.file函数非常详细的一个文档,个人非常关注就是它关于method参数设置和理解。

BT娃小提示

If method="auto" is chosen (the default), the behavior depends on the platform:

  • On a Unix-alike method "libcurl" is used except "internal" for file:// URLs, where "libcurl" uses the library of that name (https://curl.se/libcurl/).

  • On Windows the "wininet" method is used apart from for ftps:// URLs where "libcurl" is tried. The "wininet" method uses the WinINet functions (part of the OS).

    Support for method "libcurl" is optional on Windows: use capabilities("libcurl") to see if it is supported on your build. It uses an external library of that name (https://curl.se/libcurl/) against which R can be compiled.

关于 download.file 的几点理解和值得注意的地方:

download.file 是来源于 R 自带的 utils 包的一个函数,使用 packageVersion("utils") 可以查看该包的版本。


在类 Unix 系统中,默认使用 "libcurl" 的方法,而对 file:// 的链接会使用 "internal" 的下载方法。

在 Windows 中,默认使用 "wininet" 的方法,对于 ftps:// 的资源会尝试使用 "libcurl" 的下载方法。

Method to be used for downloading files. Current download methods are "internal","wininet" (Windows  only) "libcurl", "wget" and "curl", and there is a value "auto".


注意 "libcurl" 和 "curl" 的区别,严格意义上,两者不是同一个东西。

相同点:


curl 和 libcurl 都可以利用多种多样的协议来传输文件,包括 HTTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET and FILE 等。

不同点:


curl 是命令行工具,可以通过 shell 或脚本来运行 curl。curl 底层所使用的库是 libcurl。

libcurl 是一个库,通常与别的程序绑定在一起使用,如命令行工具 curl 就是封装了 libcurl 库。所以我们也可以在你自己的程序或项目中使用 libcurl 以获得类似 curl 的强大功能。

The method can also be set through the option  "d ownload.file.method"  : see  options()   . A

  • 可以使用 options(download.file.method = "libcurl") 的方式指定全局下载的方法。

  • 参考:https://stackoverflow.com/a/63104633


R 包初学者指南

2021-02-05

R 语言中 X11 相关的一些问题

2020-09-27

R 语言关于 SSL 证书异常处理笔记

2020-06-18

ggplot2 调整绘图区域大小

2020-05-23

R 语言绘制环状热图

2020-04-01

R 语言柱状图示例笔记

2020-03-20

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

R 语言 download.file 的几点知识相关推荐

  1. R语言使用file.choose()函数打开windows标准文件选择对话框

    R语言使用file.choose()函数打开windows标准文件选择对话框 目录 R语言使用file.choose()函数打开windows标准文件选择对话框 R语言是解决什么问题的? R语言使用f ...

  2. r语言 not enough x observations_R基础知识

    R系列之 R基础知识 R语言是用于统计分析,图形表示和报告的编程语言和软件环境.R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发.R语 ...

  3. R语言学习丨数据存储文件格式知识,CSV,EXCEL,XML,JSON,MYSQL等

    今天笔记的主要学习内容是R语言里文件相关知识,包含CSV.Excel.XML.JSON.MySQL等. CSV文件 基本介绍 CSV(Comma-Separated Values,字符分隔值,分隔字符 ...

  4. linux r语言内存查看,R语言统计与分布的相关知识

    变量 变量按变量值是否连续可分为连续变量与离散变量两种. 连续变量(continuous variable)与离散变量(discrete variable) 连续变量 在一定区间内可以任意取值的变量叫 ...

  5. R语言学习丨数据重塑、拆分与组合基础知识,merge、melt、cast函数介绍

    今天学习R语言中数据重塑相关基础知识,主要有merge.melt.cast函数用法示例.公众号:生信分析笔记 合并数据框 merge()函数能够以一列为参考合并两个不同数据框,相当于数学中的布尔运算& ...

  6. r语言在linux下取数据,菜鸟第一步,跪在数据处:R语言读取数据

    1. 温故知坑 实践是学习知识的最好途径.之前我讲的内容都非常非常基础,包括: (1)什么是R语言?R语言和Rstudio软件的安装,Rstudio的界面介绍: (2)R语言的基本逻辑,基本数据类型: ...

  7. R语言与数据分析-01-数据类型与数据输入-01-基础

    一. R语言的数据类型 原文链接 : r语言与数据分析实战1 1.1 知识描述 搞清楚我们面对的数据类型是什么,并能实现数据类型之间的转换 1.2 相关知识 需要认真学习以下函数: mode(): 用 ...

  8. R语言使用download.file函数下载网络文件到本地(Download File from the Internet)

    R语言使用download.file函数下载网络文件到本地(Download File from the Internet) 目录 R语言使用download.file函数下载网络文件到本地(Down ...

  9. r语言工作路径linux,R语言实用基础知识_工作路径-注释-安装和卸载R包_2019-12-01...

    R语言的实用基础知识有很多,都是我在工作和学习中所整理的,有的是看书整理的,也有的是从网络上的各种博客.各种资源获取的,所以我采用日更的方式进行支持整理和更新,希望能够帮到屏幕前的你! 今天是我日更的 ...

最新文章

  1. 【译】Yii2 0 高级模版编写使用自定义组件(component)
  2. 【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )
  3. Font Rending 的 Hint 机制对排版的影响
  4. csg显示寻找专用服务器失败,支持邻近发现过程的方法和装置
  5. mysql提示错误[Error Code] 1290 - The MySQL server is running with the --secure-file-priv option解决办法...
  6. 在Simplicity Studio下创建适用于EFR32的工程项目
  7. 海量url mysql_海量数据mysql优化步骤
  8. SpringBoot热加载实现与类加载浅谈
  9. C#基础List与ArrayList
  10. xamarin android 标签,Xamarin.Android使用教程:Android项目结构
  11. stata 将数据集变量名称导出_Stata 15 统计数据分析软件
  12. web逻辑思维题目_经典的逻辑思维训练题
  13. 2016年408考研算法题
  14. keil5 调试不进主函数一直卡在0x1FFFF3B2 F8D01808 LDR r1,[r0,#0x808]
  15. android 农历源码,android实现显示阳历和农历源码
  16. IM即时通讯-项目框架搭建(二)
  17. 杂篇:随笔编程杂谈录--《隆中对》
  18. Kafka producer的事务和幂等性
  19. python 可以处理的任务
  20. Android判断CPU是32位还是64位

热门文章

  1. 线上发生死锁异常了,该怎么办
  2. 当初我要是这么学习Nginx就好了!(多图详解)
  3. 提升码农90%学习效率的10大学习工具
  4. PingCode Wiki 多人实时协同编辑功能发布
  5. 强烈安利8个高质量的办公软件,提高你的办公效率
  6. 我又发现了7款特别好用的神仙软件,让人心动!
  7. 为什么做小程序的时候要做定制开发小程序?
  8. 微服务拆分,选型与演进
  9. 2021China SAFe Day中国规模化敏捷会
  10. Leangoo卡片和列表完成状态上线