小编Dav*_*uer的帖子

从R脚本中将作业提交到从属节点?

为了得到myscript.R使用作业调度集群从属节点上运行(即,PBS)

目前,我使用以下命令将R脚本提交给从属节点

qsub -S /bin/bash -p -1 -cwd -pe mpich 1 -j y -o output.log ./myscript.R
Run Code Online (Sandbox Code Playgroud)

R中是否有函数允许我在头节点上运行myscript.R并将各个任务发送到从节点?就像是:

foreach(i=c('file1.csv', 'file2.csv', pbsoptions = list()) %do% read.csv(i)
Run Code Online (Sandbox Code Playgroud)

更新:qsub命令的替代解决方案是#/usr/bin/Rscript从第一行删除myscript.R并直接调用它,如@Josh所指出的

qsub -S /usr/bin/Rscript -p -1 -cwd -pe mpich 1 -j y -o output.log myscript.R
Run Code Online (Sandbox Code Playgroud)

parallel-processing hpc r qsub torque

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

什么硬件限制了R的绘图速度?

我想提高绘图的速度,我很满意(并且需要很多代码)R图形和ggplot包 - 所以我只想知道如何配置我的系统来加速绘图.

特别:

  1. R中的绘图速度是否受处理器,内存,显卡的限制?
  2. 是否有特定的硬件组件或配置会增加绘图速度?

更新:评论中的问题答案:

规格:Ubuntu 11.04,intel Core Duo,8GB ram,但我更感兴趣的是图形计算或图形渲染是限制性的,如果是这样,我该如何使用这些信息.

我的情节有很多对象,但我不知道绘图的计算成本是多少.我在绘图时没有做任何具体的分析(我在完成任何必要的分析之后进行绘图),虽然我知道有些是"动态"完成的,就像绘制平滑线或甚至将数据转换到位置时一样.

hardware graphics plot r ggplot2

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

从netCDF更快地阅读时间序列?

我有一些大的netCDF文件,包含0.5度分辨率的地球的6小时数据.

每年有360个纬度点,720个经度点和1420个时间点.我有两个年度文件(12 GB ea)和一个110年数据(1.3 TB)的文件存储为netCDF-4(这里是1901年数据的一个例子,1901.nc,它的使用政策,以及原始,公共我开始使用的文件).

根据我的理解,从一个netCDF文件中读取它应该更快,而不是循环遍历由year和最初提供的变量分隔的文件集.

我想提取每个网格点的时间序列,例如从特定纬度和经度开始10或30年.但是,我发现这很慢.例如,从点位置读取10个值需要0.01秒,尽管我可以在0.002秒内从单个时间点读取10000个值的全局切片(维度的顺序是lat,lon,时间):

## a time series of 10 points from one location:
library(ncdf4)
met.nc <- nc_open("1901.nc")
system.time(a <- ncvar_get(met.nc, "lwdown", start = c(100,100,1), 
                                             count = c(1,1,10)))
   user  system elapsed 
  0.001   0.000   0.090 

## close down session

## a global slice of 10k points from one time
library(ncdf4)
system.time(met.nc <- nc_open("1901.nc"))
system.time(a <- ncvar_get(met.nc, "lwdown", start = c(100,100,1), 
                                             count = c(100,100,1)))
   user  system elapsed 
  0.002   0.000   0.002 
Run Code Online (Sandbox Code Playgroud)

我怀疑这些文件是为了优化空间层的读取而编写的,因为a)变量的顺序是lat,lon,time,b)这将是生成这些文件的气候模型的逻辑顺序和c)因为全局范围是最常见的可视化. …

io performance r hdf5 netcdf

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

如何选择版本号最高的文件名?

我编写了一个构建脚本,希望能够在安装时选择最新版本的脚本,例如包名是package_X.XXtar.gz,并且有多个副本.

有没有办法将build命令指向package_Y.tar.gz?哪里Y = max(XXX)?

bash

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

我可以运行package.skeleton而无需将函数解析为单独的文件吗?

是否可以运行package.skeleton('pkgname')并将所有.R文件放在一个文件或一组文件中,而不是每个函数一个文件?

我正在与之合作的开发人员问我为什么我将每个函数都放在一个单独的文件中,而我唯一的理由是"这是默认行为".

r package

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

R中用于调用sed,rsync,ssh等的system()的替代方法:函数是否存在,我应该编写自己的函数,还是我错过了这一点?

最近,我找到了base::files命令.随着像其它命令getwd,write.lines,file.show,dir,等等似乎有一些bash的函数R当量.

我也写R中,简化到调用一些功能 sshrsync通过system.

例如:

rsync <- function(from, to){
  system(paste('rsync -outi', from, to, sep = ' '), intern=TRUE)
}
Run Code Online (Sandbox Code Playgroud)

但在我进一步讨论之前,我有几个问题:

  • R是否已经内置了常见shell程序的命令,如果有,我在哪里可以找到它们?
  • 如果没有,是否有理由避免编写自己的功能?
  • 是否有更好的替代上述rsync示例中概述的方法?
  • 这些功能的集合是否需要包装?

bash r

12
推荐指数
2
解决办法
2587
查看次数

在R中测试统计函数的指南?

问题:我正在测试我正在开发的软件包中的函数,并且想知道是否可以建议一些如何执行此操作的一般指导原则.这些功能包括大量的统计建模,转换,子集和绘图.是否有"标准"或足够的测试?

一个例子:提示我问这个问题的测试,

函数dtheta:

dtheta <- function(x) {
  ## find the quantile of the mean
  q.mean <- mean(mean(x) >= x)
  ## find the quantiles of ucl and lcl (q.mean +/- 0.15)
  q.ucl  <- q.mean + 0.15
  q.lcl  <- q.mean - 0.15
  qs <- c(q.lcl, q.mean, q.ucl)
  ## find the lcl, mean, and ucl of the vector
  c(quantile(x,qs), var(x), sqrt(var(x))/mean(x))
}
Run Code Online (Sandbox Code Playgroud)

第1步:制作测试数据:

set.seed(100) # per Dirk's recommendation
test <- rnorm(100000,10,1)
Run Code Online (Sandbox Code Playgroud)

第2步:将函数的预期输出与函数的实际输出进行比较:

 expected <- quantile(test, c(0.35, 0.65, 0.5))
 actual   <- dtheta(test)[1:3] …
Run Code Online (Sandbox Code Playgroud)

unit-testing r function

11
推荐指数
3
解决办法
1098
查看次数

是否可以在Google-docs电子表格中定义新功能?

是否可以在Google Spreadsheets中定义可在任何单元格中使用的功能?

如果我能够以与使用本机函数相同的方式定义和使用引用其他单元格的函数,将会很有帮助,例如输入 =myfunction(C1, C2, C3)

google-sheets google-apps-script

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

如何将mcmc.list转换为bug对象?

我正在使用rjagsR库.该函数coda.samples产生一个mcmc.list,例如(from example(coda.samples)):

library(rjags)
data(LINE)
LINE$recompile()
LINE.out <- coda.samples(LINE, c("alpha","beta","sigma"), n.iter=1000)
class(LINE.out)
[1] "mcmc.list"
Run Code Online (Sandbox Code Playgroud)

但是,我想使用该plot.bugs函数,它需要一个bugs对象作为输入.

是否可以将对象从对象转换mcmc.listbugs对象,以便plot.bugs(LINE.out)

请注意,stats.SE上有一个类似的问题,一个多月没有得到答复.这个问题的结果是在2012年8月29日结束.

更多提示:

我发现R2WinBUGS包有一个函数"as.bugs.array"函数 - 但是不清楚该函数如何应用于mcmc.list.

r jags winbugs r2winbugs winbugs14

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

使用R在netCDF文件中扩展维度

我想用一个带有"无限"维度的R来编写一个netCDF文件,以后我可以扩展.

这是我尝试过的:

创建一个netcdf文件

library(ncdf4)

## define lat, lon time dimensions
lat <- ncdim_def("latitude", "degrees_east", vals =  44.0, unlim = TRUE) 
lon <- ncdim_def("longitude", "degrees_north", vals = -88.5, unlim = TRUE)
time <- ncdim_def("time", "days since 0000-01-01", 1:1000)

## define data with these dimensions
x <- ncvar_def("myvar", units = "m2", dim = list(lat, lon, time))

## create, write to, close nc file
nc <- nc_create(filename = "tmp.nc", vars = list(x))

ncvar_put(nc = nc, varid = x, vals = 1:1000)
nc_close(nc = …
Run Code Online (Sandbox Code Playgroud)

r netcdf

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