R: 使用source()函数引用网络数据文件时,系统适配性问题
2014-11-18 19:34
411 查看
source()常见于引用本地文件或者网络文件。
引用网络文件的常见案例为:
但是当引用的地址为https://开头时(比如github中的文件的地址,通常都是以https开头),在非Windows系统中会出现error message。
这是因为当R以--internet2为命令符时,https只被Windows系统支持。
如果想要在Linux或者OS X系统中用source()引用网络文件,则需要调用add-on packages
以下有两种比较方便的方法来解决这个问题:
1. 调用RCurl包
当ssl 认证是有效的时候,ssl.verifypeer这条参数可以去掉。
2. 调用devtools包
那么,当写一个程序给多用户使用,而你又不知道适用对象所使用的操作系统是什么的时候,就必须要能够让程序自己判定如何调用了。
以下是一个调用多个网络.R程序的例子,是上面提到的第一种办法的一种变通的做法,仅供参考。
参考: stackoverflow
引用网络文件的常见案例为:
source("http://www.mayin.org/ajayshah/KB/R/tutorial.R")
但是当引用的地址为https://开头时(比如github中的文件的地址,通常都是以https开头),在非Windows系统中会出现error message。
这是因为当R以--internet2为命令符时,https只被Windows系统支持。
如果想要在Linux或者OS X系统中用source()引用网络文件,则需要调用add-on packages
以下有两种比较方便的方法来解决这个问题:
1. 调用RCurl包
library(RCurl) eval( expr = parse( text = getURL("https://raw.github.com/.../test.R") ssl.verifypeer=FALSE) ))
当ssl 认证是有效的时候,ssl.verifypeer这条参数可以去掉。
2. 调用devtools包
library(devtools) source_url("https://raw.github.com/..../test.R")这其实是奖RCurl包装以后的一个包
那么,当写一个程序给多用户使用,而你又不知道适用对象所使用的操作系统是什么的时候,就必须要能够让程序自己判定如何调用了。
以下是一个调用多个网络.R程序的例子,是上面提到的第一种办法的一种变通的做法,仅供参考。
all.script <- c("a.R","b.R","c.R") src.script <- function(file){ if(file.exists(file)){ source(file) }else{ if(Sys.info()["sysname"] == "Windows")){ source(paste("https://raw.github.com/.../",file,sep="")) }else{ if(!"RCurl" %in% installed.packages())install.packages("RCurl") library(RCurl) ex <- getURL(paste("https://raw.github.com/.../",file,sep=""), ssl.verifypeer=0L, followlocation=1L) writeLines(ex, "temp.R") source("temp.R") } } } sapply(all.script, src.script)
参考: stackoverflow
相关文章推荐
- 64位windows7下使用CopyFile()函数复制文件到系统目录下不成功问题
- php使用fputcsv()函数csv文件读写数据的方法(解决中文乱码问题)
- proc文件系统中cpu,内存,网络数据使用情况获取(附检测网速源码)
- 使用网络文件系统(NFS)
- Linux 文件系统中元数据使用计数的机制
- 使用bindingsource数据绑定时datagridview单元格无法及时刷新的问题
- 数据结构与函数使用问题
- 使用Jbuilder引用外部jar包制作的jar文件,运行时的问题
- 网络游戏服务器开发:脚本系统的制作,linux下使用tolua制作Lua脚本系统(不需要PKG文件)
- linux网络监控工具---系统自带的工具的使用示例(可以监控经过本局域网的任何数据,并可以打印到屏幕或者日志文件)
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- 虚拟机+ubuntu系统 使用NAT网络连接方式 无网络连接问题
- 服务器使用Kerberos安全验证保护网络文件系统
- Visual Source Safe连接数据文件图解 解决密码缓存问题
- 网络文件系统中的数据缓存
- 网络文件系统nfs文件系统使用
- Step1数据系统技术(5.使用GZIP技术优化文件缓存)
- 网络文件资源管理系统需要引用到的第三方工具或组件
- 浅析NTFS 文件系统数据流安全问题
- GFS安装实例-解决共享存储文件系统数据不同步问题