我正在弄清楚如何使用我的大学集群.它安装了2个版本的R. 系统范围的R 2.11(Debian 6.0)和R 2.14.2在非标准位置.
我正在尝试将MPI与雪一起使用.我试图运行的代码如下
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Run Code Online (Sandbox Code Playgroud)
它在R 2.11上没有问题.(我用它启动脚本mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R).现在,当我尝试使用R 2.14.2时,我收到以下消息:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Run Code Online (Sandbox Code Playgroud)
所以似乎R加载为R 2.11编译的包雪版本.我已将R 2.14下的雪安装到我的主文件夹中,并在代码中添加了以下行:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
Run Code Online (Sandbox Code Playgroud)
并且错误之前的输出确认我确实正在运行R 2.14.2并且我的R packages文件夹首先在搜索路径中.但我仍然得到错误.
所以我的问题是如何确定在R中加载哪个版本的软件包?我可以看到 installed.packages所有已安装的软件包,所以可能有一些函数列出了加载软件包的类似信息?
我有以下虚拟数据:
library(dplyr)
library(tidyr)
library(reshape2)
dt <- expand.grid(Year = 1990:2014, Product=LETTERS[1:8], Country = paste0(LETTERS, "I")) %>% select(Product, Country, Year)
dt$value <- rnorm(nrow(dt))
Run Code Online (Sandbox Code Playgroud)
我选择了两个产品国家组合
sdt <- dt %>% filter((Product == "A" & Country == "AI") | (Product == "B" & Country =="EI"))
Run Code Online (Sandbox Code Playgroud)
我希望每个组合并排看到这些值.我可以这样做dcast:
sdt %>% dcast(Year ~ Product + Country)
Run Code Online (Sandbox Code Playgroud)
是否有可能spread从包tidyr做到这一点?
我刚开始学习概率,我正在寻找可以在linux上工作的工具.
我找到了一些组合软件包http://rss.acs.unt.edu/Rdoc/library/Combinations/html/00Index.html但是当我尝试安装它们时,该过程失败并显示以下消息:
> install.packages("Combinations")
Installing package(s) into ‘/home/maxim/R/x86_64-pc-linux-gnu-library/2.13’
(as ‘lib’ is unspecified)
Warning message:
In getDependencies(pkgs, dependencies, available, lib) :
package ‘Combinations’ is not available (for R version 2.13.1)
Run Code Online (Sandbox Code Playgroud) 我有以下虚拟代码:
dt<-data.frame(country=letters[1:20],val=rnorm(20),siz=rnorm(20))
qplot(x=country,y=val,data=dt,geom="point",size=siz)
Run Code Online (Sandbox Code Playgroud)
现在我想增加点的相对大小,因为得到的最小点太小了.这是否可以通过更改一个参数来完成,例如cex在基础图中?
我需要做一些模拟和调试,我想set.seed用来获得相同的结果.这是我想要做的例子:
library(foreach)
library(doMC)
registerDoMC(2)
set.seed(123)
a <- foreach(i=1:2,.combine=cbind) %dopar% {rnorm(5)}
set.seed(123)
b <- foreach(i=1:2,.combine=cbind) %dopar% {rnorm(5)}
Run Code Online (Sandbox Code Playgroud)
对象a和b应该是相同的,即sum(abs(a-b))应该为零,但是这并非如此.我做错了什么,或者我偶然发现了一些功能?
我能够在R 2.13和R 2.14的两个不同系统上重现这一点
我正在尝试jekyll进行网站创建.我正在使用jekyll-bootstrap.
默认配置具有页面存档,其中列出的所有帖子按发布日期的年份和月份分组.目前这几个月用英文出现.我查看了代码,这是一个负责提交日期的摘录:
{% capture this_month %}{{ post.date | date: "%B" }}{% endcapture %}
Run Code Online (Sandbox Code Playgroud)
我在这里找到了很多信息,因此有一种方法可以指定所需的语言环境.但你怎么能让杰奎尔尊重呢?简单地添加
default_locale: "lt"
Run Code Online (Sandbox Code Playgroud)
在_config.yml自然不起作用.
我正在开发一个具有该功能的包forecast.myclass.我希望该功能与forecast包很好地协同工作.即,当forecast加载包时,代码forecast(object)应该forecast.myclass从我的包调用.
由于我只需forecast要从包中通用定义forecast,并且我不使用包中的任何其他功能,forecast我不愿意将其包含在Depends中.所以我通过以下方式在我的包中定义泛型:
##'
##' @export
forecast <- function(object,...) UseMethod("forecast")
##' @rdname forecast.midas_r
##' @method forecast midas_r
##' @export
forecast.midas_r <- function(object,newdata=NULL,method=c("static","dynamic"),insample=get_estimation_sample(object),...) {
Run Code Online (Sandbox Code Playgroud)
现在,当forecast未加载包时,一切都按预期工作.但是,当我打开包forecast,然后forecast.midas_r不叫,做的时候forecast(object),其中object的类midas_r.我该如何解决这个问题?
我想在闪亮的应用程序中更改选择下拉列表的高度.默认高度显示大约8个选项,我想看到更多.可以通过降低下拉线的行高来增加选项的数量,但这对我来说不是最佳解决方案.我搜索了很多关于如何做到这一点,查看了selectize.js代码,我目前的假设是,这是微不足道的,或者设计不可能.
我所学到的是,select中显示的下拉列表是一个div类.selectize-dropdown-content,但是改变它的高度和宽度属性不会改变任何东西.虽然可以改变背景颜色.这是我的单个文件闪亮的应用程序代码:
server <- function(input, output) {
output$distPlot <- renderPlot({
plot(0.5,0.5,xlim=c(0,1),ylim=c(0,1))
text(0.5,0.5,input$Letter)
})
}
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
selectizeInput("Letter", "", setNames(letters,letters),selected="a",multiple=FALSE),
tags$style(type='text/css',
".selectize-dropdown-content {
height: 600 px;
width: 700 px;
background-color: #b0c4de;
}")
),
mainPanel(plotOutput("distPlot"))
)
))
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我是否正在修改正确元素的css,或者是否在selectize.js中更改下拉高度?
我常常遇到需要为不同变量创建大量类似模型的情况.通常我将它们转储到列表中.以下是虚拟代码的示例:
modlist <- lapply(1:10,function(l) {
data <- data.frame(Y=rnorm(10),X=rnorm(10))
lm(Y~.,data=data)
})
Run Code Online (Sandbox Code Playgroud)
现在,以实例为例非常简单:
lapply(modlist,predict)
Run Code Online (Sandbox Code Playgroud)
我有时想做的是从列表中提取一个元素.显而易见的方法是
sapply(modlist,function(l)l$rank)
Run Code Online (Sandbox Code Playgroud)
这样做我想要的,但我想知道是否有更短的方法来获得相同的结果?
我正在创建一个包,对于S3方法,我使用它们导出它们
##' @method predict myclass
##' @export
predict.myclass <- function(object,...) { }
Run Code Online (Sandbox Code Playgroud)
现在当我加载包时,然后predict处理类的对象myclass,但predict.myclass不导出函数.在NAMESPACE我只能获得参赛作品S3method(predict,myclass).那么有没有一种方法可以导出predict.myclass,这样用户就可以获得predict.myclass他(她)predict.myclass在控制台中写入的代码?