标签: ropensci

如何使用R搜索PubMed或其他数据库

我最近一直在使用优秀的rplos软件包,这使得搜索公共科学图书馆(PLOS)API上的论文非常容易.我遇到了麻烦,因为API本身似乎有一些缺失的信息 - 一个主要的问题是至少有2012年关于API的论文在"期刊"领域没有任何信息.我有每篇论文的DOI,所以对于谷歌这个DOI来说很简单,并且证明这些是在真实期刊上发表的真实论文,通常是PLoS ONE.显然,做2000次这样做会很愚蠢.

如果我有DOI列表,我想知道是否有人知道如何找到源期刊?我查看了RISmed包,它显然可以从R中搜索PubMed,但我无法弄清楚如何让它提供有用的信息(只是搜索命中的数量,以及一些可能导致我想要的信息的PubMed ID) .

任何人都知道如何将DOI列表转换为源日记帐名称?

编辑:我只想到另一个简单的解决方案.DOI包含期刊名称的缩写,对于这样的情况,只有少数期刊,可以使用正则表达式来读取DOI并选择它们来自哪个期刊.示例:10.1371/journal.pone .0046711来自PLoS ONE.

doi r pubmed ropensci

8
推荐指数
1
解决办法
1876
查看次数

根据窗口大小动态调整闪亮绘图输出的高度和/或宽度

我希望将闪亮的图形输出高度和宽度调整为当前窗口大小.我试过使用下面但没有用.

ShinyUi <- fluidPage(

  # Application title
  titlePanel("title"),

  sidebarLayout(
    sidebarPanel(
      ... inputs ...
    ),

    mainPanel(
          plotlyOutput("distPlot", height = 'auto', width = 'auto')
      )
  ))

ShinyServer <- function(input, output, session) {

   output$distPlot <- renderPlotly({

    p <- ggplot(dataShow, aes(x=dataShow$X, y=dataShow$Y))  + 
geom_point(shape=1, alpha = 0.5, color = "grey50")

    ggplotly(p)

  })

}


# Run the application 
shinyApp(ui = ShinyUi, server = ShinyServer)
Run Code Online (Sandbox Code Playgroud)

您是否知道可能在服务器功能中使用的任何其他选项而不是上述UI功能使用?

较小的窗口: 在此输入图像描述

扩展窗口:在此输入图像描述

r ggplot2 ropensci shiny plotly

7
推荐指数
1
解决办法
4658
查看次数

多个源顶点的子组件(mode ="in")

igraphR包中,是否有一个subcomponent()可以处理多个源顶点的有效实现和/或BFS?

动机

drake[R包装机型用户的工作流程是相互依存的对象和文件的DAG.DAG应该只包含用户的目标及其上游依赖项,因此drake用于igraph::subcomponent()消除多余的顶点.这种方法效率很低,因为v参数必须是单个顶点,因此drake最终会为用户想要构建的每个目标执行新的BFS.

编辑:2019-01-10

drake现在使用一种不同的方法,最终依赖于顺序调用adjacent_vertices().这种方法很笨重,但速度提升实际上非常好.仍然坚持更优雅和精致的东西.

r igraph ropensci drake-r-package

7
推荐指数
1
解决办法
146
查看次数

锁定环境,但不锁定.seed

是否可以锁定全局环境并且仍然允许.Random.seed设置或删除全局环境?在lockEnvironment()我的用例中,的默认行为过于激进。

lockEnvironment(globalenv())
rnorm(10)
#> Error in rnorm(10) : cannot add bindings to a locked environment
rm(.Random.seed)
#> Error in rm(.Random.seed) : 
#>   cannot remove bindings from a locked environment
Run Code Online (Sandbox Code Playgroud)

背景

drake 7.0.0版将具有新的保护措施,以保护可重复性。

plan <- drake_plan(
  x = {
    data(mtcars)
    mtcars$mpg
  },
  y = mean(x)
)

plan
#> # A tibble: 2 x 2
#>   target command                            
#>   <chr>  <expr>                             
#> 1 x      {     data(mtcars)     mtcars$mpg }
#> 2 y      mean(x)

make(plan)
#> target x
#> fail …
Run Code Online (Sandbox Code Playgroud)

r ropensci r-environment drake-r-package

6
推荐指数
0
解决办法
67
查看次数

用R子集geojson数据

我有一个从这里获得的状态边界的geojson文件。特别是我正在使用2000万美国数据

我正在尝试对数据进行子集处理,以便可以使用传单仅映射某些状态。我可以使用以下方法将一个状态子集化:

states <- geojsonio::geojson_read("gz_2010_us_040_00_20m.json", what = "sp")
az <- subset(states, NAME == "Arizona")
Run Code Online (Sandbox Code Playgroud)

但是,此方法似乎不适用于选择多个状态:

swStates <- subset(states, NAME == c("Arizona", "Nevada", "New Mexico"))
Run Code Online (Sandbox Code Playgroud)

选择多个状态通常只会导致选择一个或两个状态,或者根本不会选择一个状态。我可以使用其他方法来对数据进行子集化吗?

gis r geojson leaflet ropensci

5
推荐指数
1
解决办法
647
查看次数

使用 R 访问 ACM 数字图书馆 - 没有 API 那么怎么可能?

我想使用 R 代码搜索 ACM 数字库,检索至少包括摘要在内的元数据,最多检索全文。

我知道 rOpenSci 库提供了 R 包和函数来访问 IEEEExplore 和其他文献数据服务,并且这些工作得很好,但是由于 ACM 数字库尚未提供 API,因此 rOpenSci 无法开发访问 ACM 的代码来自 R 的数字图书馆资源。

我的问题是有人知道解决这个问题的方法吗?是否有替代方案允许以编程方式访问 ACM 数字图书馆中的内容?

谢谢山姆

r ropensci

5
推荐指数
1
解决办法
1824
查看次数

无论端口打开/关闭,启动 RSelenium 浏览器

问题:是否有一个函数可以在尚未打开的情况下打开 selenium 浏览器,或者关闭当前浏览器并重置端口并重新启动浏览器?

理由:我在 RSelenium 中处理偶尔会崩溃的大循环,因此有时我不知道循环代码中端口是否打开或浏览器是否打开。我想要一个 RSelenium 启动器,无论浏览器是否打开或端口是否正在使用,它都会启动浏览器。

尝试:我使用 tryCatch() 尝试了这种方法,但如果我尝试启动它两次,我仍然会收到 wdman 错误,表明端口已打开:

browserpreference <- "chrome"
tryCatch({rD <- rsDriver(port = 4444L, browser = paste0(browserpreference))}
  ,error=function(rD,remDr){
          try(remDr$close(), silent=T)
          try(rD$server$stop(),silent=T)
          try(suppressWarnings(rm(rD, envir = .GlobalEnv)), silent=T)
          try(suppressWarnings(rm(remDr, envir = .GlobalEnv)), silent=T)
          gc()
          rD <- rsDriver(port = 4444L, browser = paste0(browserpreference))
        })
Run Code Online (Sandbox Code Playgroud)

如果我尝试两次,我会收到此错误:

Error in wdman::selenium(port = port, verbose = verbose, version = version,  : 
  Selenium server signals port = 4444 is already in use.
Run Code Online (Sandbox Code Playgroud)

谢谢!

selenium r ropensci rselenium

5
推荐指数
1
解决办法
1526
查看次数

使用install_github时出错:'exdir'不存在

我试图从github安装一个包,但不断收到以下错误;

"Error in unzip(src, list = TRUE) : 'exdir' does not exist".
Run Code Online (Sandbox Code Playgroud)

我猜unzip没有权限创建一个目录来解压缩,但我不知道将参数传递给exdir参数的方法.

> require(devtools)
> install_github("rvertnet", "ropensci")

Installing github repo(s) rvertnet/master from ropensci
Installing rvertnet.zip from https://api.github.com/repos/ropensci/rvertnet/zipball/master
Error in unzip(src, list = TRUE) : 'exdir' does not exist
Run Code Online (Sandbox Code Playgroud)

这是我第一次从github安装,所以我可能会遗漏一些非常简单的东西.我尝试了其他package(ggplot2)并得到了同样的错误.

编辑:添加的结果来自sessionInfo():

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_Canada.1252  LC_CTYPE=English_Canada.1252   LC_MONETARY=English_Canada.1252
[4] LC_NUMERIC=C                    LC_TIME=English_Canada.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] devtools_0.8

loaded via …
Run Code Online (Sandbox Code Playgroud)

r github ropensci

4
推荐指数
1
解决办法
2444
查看次数

将"多特征"GeoJSON的特征转换为R空间对象

通常情况下,你可以阅读GeoJSON的文件成R与信赖readOGR,如图所示这里.

但是,对于多功能地理数据而言,这是失败的.

可重复的例子:

downloader::download("https://github.com/Robinlovelace/Creating-maps-in-R/raw/master/data/test-multifeature.geojson", "test.geojson")
test <- rgdal::readOGR("test.geojson", "OGRGeoJSON") # fails with:

Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,  : 
  Multiple incompatible geometries: wkbPoint: 98; wkbLineString: 660; wkbPolygon: 23
Run Code Online (Sandbox Code Playgroud)

错误消息足够清晰并指示解决方案:拆分功能.除了用正则表达式做这个,我不知道怎么样.

任何想法都非常受欢迎.

令人惊奇的是:GitHub在浏览器上本地显示数据,而R甚至不能(看似)读取它!

解决方案的替代方法:

test <- geojsonio::geojson_read("test.geojson")
Run Code Online (Sandbox Code Playgroud)

r gdal geojson rgdal ropensci

4
推荐指数
1
解决办法
1492
查看次数

安全弹性搜索R连接错误 - 未启用或不支持客户端请求的协议TLSv1

我使用elastic 0.7.8R包连接到我的Elastic Search实例.最近,我试图通过使用来保护弹性搜索Search Guard 2.

在确保它之后,一切都会受到罚款.但是当我尝试从R连接时,它失败了.

library(elastic)
connect(es_base = "https://localhost", es_port = 9200, es_user = USER, es_pwd = PASS)
Run Code Online (Sandbox Code Playgroud)

日志中的错误是"客户端请求的protocal TLSv1未启用或不支持"

我尝试使用cURL连接到弹性搜索,如下所示:

我无法弄清楚如何强制R使用TLSv1.1.

请协助.

以下是版本:

  • R:3.3.1
  • 弹性搜索:2.4.1
  • 海湾合作委员会:4.9.2
  • 操作系统:RHEL 6.7
  • Openssl:1.0.1.e-fips 2013年2月11日

configuration openssl r elasticsearch ropensci

2
推荐指数
1
解决办法
236
查看次数

Shiny 更新单击的点以突出显示它

这是提取点击事件的工作示例。我想问你是否有办法通过增加大小或突出显示等来更新点击点?

library(shiny)
library(plotly)

ui <- fluidPage(
    plotlyOutput("plot"),
    verbatimTextOutput("click")
)

server <- function(input, output, session) {

    nms <- row.names(mtcars)

    output$plot <- renderPlotly({
        p <- ggplot(mtcars, aes(x = mpg, y = wt, col = as.factor(cyl), key = nms)) + 
           geom_point()
        ggplotly(p)

    })

    output$click <- renderPrint({
        d <- event_data("plotly_click")
        if (is.null(d)) "Click events appear here (double-click to clear)" 
        else cat("Selected point associated with Car: ", d$key)
    })

}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我已经搜索了 SO 和其他合适的来源以找到以下问题的解决方案,但找不到。

更新:

  • 这个解决方案更适合这个玩具情节。但是,我的原始用例包含 50 多个感兴趣的变量级别,并且很有可能已经存在洋红色或任何其他颜色。此外,改变颜色需要相当长的时间。
  • 有没有办法增加点击点的大小以将其与附近的数百个点区分开来?

已在此处询问有关更改单击点形状的相关问题。

r ropensci shiny plotly ggplotly

2
推荐指数
1
解决办法
2097
查看次数