首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RCurl在mac上返回哪些中断行?

问RCurl在mac上返回哪些中断行?
EN

Stack Overflow用户
提问于 2016-11-23 11:03:04
回答 2查看 48关注 0票数 1

RCurl在Windows和Linux系统上返回ftp目录的不同换行。

代码语言:javascript
复制
if(!requireNamespace("RCurl", quietly=TRUE)) install.packages("RCurl")
link <- "ftp://ftp-cdc.dwd.de/pub/CDC/observations_germany/climate"
RCurl::getURL(link, ftp.use.epsv=TRUE, dirlistonly=TRUE)
Sys.info()['sysname'] ; .Platform$OS.type

# Windows / windows: "climate\r\nphenology\r\nradiosondes\r\nclimate_urban\r\n"
# Linux / unix: "climate\nphenology\nradiosondes\nclimate_urban\n"

要获得字符串的向量,我可以使用

代码语言:javascript
复制
p <- strsplit(p, "\n")[[1]]
p <- gsub("\r", "", p) # additional carriage return in windows libcurl

但是:看来mac可能只从https://stat.ethz.ch/R-manual/R-devel/library/utils/html/write.table.html中的eol解释中返回https://stat.ethz.ch/R-manual/R-devel/library/utils/html/write.table.html。如果那样的话,我的方法就会失败。

一个拥有mac测试并发布mac (Sys.info()['sysname']:"Darwin")的人能输出吗?solaris ("SunOS")怎么样?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-23 11:21:38

我将对所有回车进行分割,在这样的情况下,使用一个正则表达式(包括两者)并过滤空条目(原因是\n\r执行两次拆分):

代码语言:javascript
复制
t<-"climate\r\nphenology\r\nradiosondes\r\nclimate_urban\r\n"
t1<-"climate\nphenology\nradiosondes\nclimate_urban\n" 

 p<-unlist(strsplit(t,"[\n\r]"))
 p<-p[nchar(p)>0]

 p1<-unlist(strsplit(t1,"[\n\r]"))
 p1<-p[nchar(p1)>0]

这意味着:

代码语言:javascript
复制
> p
[1] "climate"       "phenology"     "radiosondes"   "climate_urban"
> p1
[1] "climate"       "phenology"     "radiosondes"   "climate_urban"
票数 1
EN

Stack Overflow用户

发布于 2016-11-23 13:53:07

一个更简洁的平台agnositc替代方案也使用了curl包:

代码语言:javascript
复制
library(curl)
readLines(curl(link, handle=new_handle(dirlistonly=TRUE, ftp_use_epsv=TRUE)))
## [1] "hourly"       "daily"        "monthly"      "multi_annual" "subdaily"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40762669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档