小编jbr*_*yer的帖子

为什么并行包慢于使用apply?

我试图确定何时使用该parallel程序包来加快运行某些分析所需的时间.我需要做的一件事是创建矩阵,比较具有不同行数的两个数据帧中的变量.我问了一个关于在StackOverflow上做有效方法的问题,并在我的博客上写了关于测试的文章.由于我对最佳方法感到满意,因此我希望通过并行运行来加快这一过程.以下结果基于带有8GB RAM的2ghz i7 Mac.令我感到惊讶的是,特别是功能parallelparSapply比使用该apply功能更糟糕.复制它的代码如下.请注意,我目前只使用我创建的两个列中的一个,但最终想要同时使用它们.

执行时间http://jason.bryer.org/images/ParalleVsApplyTiming.png

require(parallel)
require(ggplot2)
require(reshape2)
set.seed(2112)
results <- list()
sizes <- seq(1000, 30000, by=5000)
pb <- txtProgressBar(min=0, max=length(sizes), style=3)
for(cnt in 1:length(sizes)) {
    i <- sizes[cnt]
    df1 <- data.frame(row.names=1:i, 
                      var1=sample(c(TRUE,FALSE), i, replace=TRUE), 
                      var2=sample(1:10, i, replace=TRUE) )
    df2 <- data.frame(row.names=(i + 1):(i + i), 
                      var1=sample(c(TRUE,FALSE), i, replace=TRUE),
                      var2=sample(1:10, i, replace=TRUE))
    tm1 <- system.time({
        df6 <- sapply(df2$var1, FUN=function(x) { x == df1$var1 })
        dimnames(df6) <- …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r

36
推荐指数
3
解决办法
1万
查看次数

从R运行sudo系统命令?

有时这有效,有时不行.这似乎取决于系统是否需要提示输入密码.更普遍的问题是:用户是否有办法从R内部向shell命令提供输入?

system('sudo npm install gitbook -g')
Run Code Online (Sandbox Code Playgroud)

请注意,我的具体情况是尝试安装node.js模块.但是,我认为您可以使用更简单的命令复制它.

system('sudo mkdir testdir')
Run Code Online (Sandbox Code Playgroud)

请注意,这有时会有效,具体取决于是否sudo要求您重新输入密码.谢谢.

r

17
推荐指数
2
解决办法
7148
查看次数

使用带有RSQLite的日期

如何使用RSQLite编写带有日期的SQL查询.以下是一个例子.将dbGetQuery不返回任何行.

require(RSQLite)
require(ggplot2)
data(presidential)
m <- dbDriver("SQLite")
tmpfile <- tempfile('presidential', fileext='.db')
conn <- dbConnect(m, dbname=tmpfile)
dbWriteTable(conn, "presidential", presidential)
dbGetQuery(conn, "SELECT * FROM presidential WHERE Date(start) >= Date('1980-01-01')")
Run Code Online (Sandbox Code Playgroud)

r

12
推荐指数
1
解决办法
3288
查看次数

Jekyll转换器为R Markdown

我正在尝试为R Markdown文件编写一个Jekyll转换器.我创建RMarkdownConverter.rb并将其放在我的_plugins目录中.我已经验证其他插件正在运行,但这个不是.我也没有看到任何错误消息,包括我自己放置的消息.似乎没有使用它.但是,Jekyll正在为我的.Rmd文件生成一个HTML文件,但只是将R chuck作为代码查询处理.任何帮助或想法将不胜感激.

RMarkdownConverter.rb 文件:

module Jekyll
    class RMarkdownConverter < Converter
        safe true
        priority :low

    def setup
      STDERR.puts "Setting up R Markdown..."
      return if @setup
      require 'rinruby'
      @setup = true
    rescue
      STDERR.puts 'do `gem install rinruby`'
      raise FatalException.new("Missing dependency: rinruby")
    end

        def matches(ext)
            ext =~ /Rmd/i
        end

        def output_ext(ext)
           '.html'
        end

        def convert(content)
      setup
      STDERR.puts "Using R Markdown..."
      R.eval "require(knitr)"
      R.eval "render_markdown(strict=TRUE)"
      R.assign "content", content
      STDERR.puts content
      R.eval "out <- knit(text=content)"
      R.eval "print(out)"
        end …
Run Code Online (Sandbox Code Playgroud)

r jekyll knitr r-markdown

11
推荐指数
1
解决办法
1269
查看次数

当x轴是因子时,使用ggplot添加垂直线

以下代码用于处理ggplot2的预版本.9.这不可能了吗?

df = data.frame(x = letters[1:26], y=abs(rnorm(26)))
ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept='m')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in get(as.character(FUN), mode = "function", envir = envir) : 
   object 'm' of mode 'function' was not found
Run Code Online (Sandbox Code Playgroud)

r ggplot2

9
推荐指数
1
解决办法
7549
查看次数

是否可以通过扫描从控制台读取而不回显字符?

这是一个示例函数:

    passwordEntry <- function() {
            cat("Enter your password: ")
            pwd <- scan(n=1, what=character(), quiet=TRUE)
            invisible(pwd)
    }
Run Code Online (Sandbox Code Playgroud)

并测试功能:

    >   passwordEntry()
    Enter your password: 
    1: test
    > 
Run Code Online (Sandbox Code Playgroud)

有没有办法压制用户输入的内容?或者换一些其他角色?我编写了一个tcl/tk函数来提示用户输入密码,但它在我们的Linux服务器上不起作用.

以下是Paul的链接示例.这在Linux或Windows上都不起作用(后者可能因为我没有合适的C编译器,所以会考虑到这一点).

getkey3.c

    #include <stdio.h>
    #include <termios.h>
    #include <unistd.h>
    void mygetch ( int *ch ) 
    {
            struct termios oldt, newt;
            tcgetattr ( STDIN_FILENO, &oldt );
            newt = oldt;
            newt.c_lflag &= ~( ICANON | ECHO );
            tcsetattr ( STDIN_FILENO, TCSANOW, &newt );
            *ch = getchar();
            tcsetattr ( STDIN_FILENO, TCSANOW, &oldt );
            return;
    }
Run Code Online (Sandbox Code Playgroud)

我的test.r剧本: …

passwords r

6
推荐指数
1
解决办法
887
查看次数

在 Mac 上从 R 连接到 Oracle

我一直在尝试从 R 设置到 Oracle 数据库的连接。在 Windows 和 Linux 上运行良好,但似乎无法在 Mac 上运行。这是另一篇文章,我在没有运气的情况下按照说明进行操作。我更喜欢使用 RODBC 包,但可以使用 ROracle(我无法使用它们)。我尝试了Oracle Instant ClientActual Technologies驱动程序。任何帮助将不胜感激。

在 Mac OS X 上安装 ROracle - Oracle 需要什么?

使用 Active Technologies 驱动程序,我已经设置并成功测试了来自 ODBC 管理器的连接,但odbcDataSources()没有返回我定义的任何连接。

由于编译错误,无法安装 ROracle:

ld: library not found for -lclntsh
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ROracle.so] Error 1
ERROR: compilation failed for package ‘ROracle’
* removing ‘/Library/Frameworks/R.framework/Versions/3.1/Resources/library/ROracle’
Run Code Online (Sandbox Code Playgroud)

当您解压缩文件时,似乎即时客户端没有将文件放在正确的目录中。这是我组织文件的方式:

bin/adrci
bin/genezi
bin/sqlplus
bin/uidrvci
lib/libclntsh.dylib.11.1 …
Run Code Online (Sandbox Code Playgroud)

oracle r rodbc

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

你可以将图像作为radioButton的选择吗?

我正在尝试使用Shiny作为多项选择项的评估工具.因此,在某些情况下,我希望有一个图像作为选择.而是显示原始HTML.这可以用Shiny完成吗?

library(shiny)

choices <- c('\\( e^{i \\pi} + 1 = 0 \\)' = 'equation',
             '<img src="Rlogo.png">' = 'logo')

ui <- shinyUI(fluidPage(
    withMathJax(),
    img(src='Rlogo.png'),
    fluidRow(column(width=12,
        radioButtons('test', 'Radio buttons with MathJax choices',
                     choices = choices, inline = TRUE),
        br(),
        h3(textOutput('selected'))
    ))
))

server <- shinyServer(function(input, output) {
    output$selected <- renderText({
        paste0('You selected the ', input$test)
    })
})

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

您必须将R徽标放在www放置此app.r脚本的目录中.以下是徽标的直接链接:http://i1.wp.com/www.r-bloggers.com/wp-content/uploads/2016/02/Rlogo.png?resize = 300%2C263

r shiny

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

更改公式中变量的名称

我正在尝试创建通用函数来处理具有多个合理值的数据框.我想要的是将公式传递给函数以执行回归,例如:

f <- MRPCM ~ DSEX + IEP + ELL3 + SDRACEM + PARED

MRPCM变量实际上并不存在于数据框中.取而代之的五个变量,MRPCM1,MRPCM2,MRPCM3,MRPCM4,和MRPCM5确实存在.我想要做的是迭代并更新公式(f这里)以创建五个公式.可以这样做吗?该update.formula功能似乎一次在整个左侧或右侧.我还应该注意,在这个例子中,我希望改变的变量是因变量,因此update(f, MRPCM1 ~ .)可行.但是,我不知道变量在公式中出现的位置.

例如:

f <- MRPCM + DSEX ~ IEP + ELL3 + SDRACEM + PARED

update.formula(f, as.formula('MRPCM1 ~ .'))

结果(注意DSEX现在缺失):

MRPCM1 ~ IEP + ELL3 + SDRACEM + PARED

r

3
推荐指数
1
解决办法
2028
查看次数

使用 LetsEncrypt 与 Shiny Server Pro 时出错

我正在尝试使用 Letscrypt 的 SSL 证书配置 Shiny Server Pro。我按照以下命令创建证书,如下所述: https: //certbot.eff.org/#ubuntuxenial-other

sudo apt-get install letsencrypt
sudo systemctl stop shiny-server
letsencrypt certonly --standalone -d pbisny.org -d www.pbisny.org
Run Code Online (Sandbox Code Playgroud)

我将此行添加到/etc/shiny-server/shiny-server.conf

 ssl /etc/letsencrypt/live/pbisny.org/privkey.pem /etc/letsencrypt/live/pbisny.org/cert.pem
Run Code Online (Sandbox Code Playgroud)

并启动服务器。

sudo systemctl start shiny-server
Run Code Online (Sandbox Code Playgroud)

然后我得到这个错误:

Job for shiny-server.service failed because a configured resource limit
was exceeded. See "systemctl status shiny-server.service" and
"journalctl -xe" for details.
Run Code Online (Sandbox Code Playgroud)

以下是详细信息systemctl status shiny-server.service

shiny-server.service - ShinyServer
   Loaded: loaded (/etc/systemd/system/shiny-server.service; enabled; vendor preset: enabled)
   Active: failed (Result: resources) since Sat 2016-10-22 12:29:19 UTC; 9s …
Run Code Online (Sandbox Code Playgroud)

r shiny-server

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