我试图确定何时使用该parallel程序包来加快运行某些分析所需的时间.我需要做的一件事是创建矩阵,比较具有不同行数的两个数据帧中的变量.我问了一个关于在StackOverflow上做有效方法的问题,并在我的博客上写了关于测试的文章.由于我对最佳方法感到满意,因此我希望通过并行运行来加快这一过程.以下结果基于带有8GB RAM的2ghz i7 Mac.令我感到惊讶的是,特别是功能parallel包parSapply比使用该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) 有时这有效,有时不行.这似乎取决于系统是否需要提示输入密码.更普遍的问题是:用户是否有办法从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要求您重新输入密码.谢谢.
如何使用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 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) 以下代码用于处理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) 这是一个示例函数:
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剧本: …
我一直在尝试从 R 设置到 Oracle 数据库的连接。在 Windows 和 Linux 上运行良好,但似乎无法在 Mac 上运行。这是另一篇文章,我在没有运气的情况下按照说明进行操作。我更喜欢使用 RODBC 包,但可以使用 ROracle(我无法使用它们)。我尝试了Oracle Instant Client和Actual 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) 我正在尝试使用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
我正在尝试创建通用函数来处理具有多个合理值的数据框.我想要的是将公式传递给函数以执行回归,例如:
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
我正在尝试使用 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 ×10
ggplot2 ×1
jekyll ×1
knitr ×1
oracle ×1
passwords ×1
r-markdown ×1
rodbc ×1
shiny ×1
shiny-server ×1