小编Dav*_*uer的帖子

如何将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
查看次数

通过grepping qstat输出并将jobid发送到qdel来删除作业?

我正在我的群集上使用PBS作业调度程序,我想删除早于某个日期的作业qdel; 或者,能够qstat按日期对结果进行排序就足够了.

qstat 给出这个输出:

job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
 326539 0.50500 run        user         r     01/06/2011 11:13:34 all.q@compute-0-0.local            1        
 326594 0.50500 run        user         r     01/06/2011 11:13:34 all.q@compute-0-0.local            1    
Run Code Online (Sandbox Code Playgroud)

我可以删除以下职位qdel:

qdel 326539
Run Code Online (Sandbox Code Playgroud)

我可以使用grep以下命令找到要删除的作业:

qstat > foo; grep 01/06 foo
Run Code Online (Sandbox Code Playgroud)

我目前的工作是将上面的输出粘贴到电子表格中,按作业ID排序,然后qdel {min..max},

我可以将这些步骤合并为一个命令吗?

援助表示感谢

bash grep pbs

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

从字符串中删除转义符,或者"我怎样才能将\"移开?"

逃生字符在R中造成很多麻烦,前面的问题证明了这一点:

  1. 更改列中的值
  2. 可以R paste()输出"\"吗?
  3. 用R中的双引号替换转义的双引号
  4. 如何gsub('%','\%',...在R?

以前的许多问题都可以简化为"我怎样才能得到我的方式?"的特殊情况.

有一个简单的方法吗?

例如,我找不到任何参数gsub将删除以下所有转义:

 test <- c('\01', '\\001')
Run Code Online (Sandbox Code Playgroud)

string r escaping

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

为什么sapply返回我需要转置的矩阵,然后转置矩阵不会附加到数据帧?

我希望了解为什么会发生这种情况以及如何更有说服力地做到这一点.

当我使用sapply时,我希望它返回一个3x2矩阵,但它返回一个2x3矩阵.为什么是这样?为什么难以将其附加到另一个数据框?

a <- data.frame(id=c('a','b','c'), var1 = c(1,2,3), var2 = c(3,2,1))
out <- sapply(a$id, function(x) out = a[x, c('var1', 'var2')])
#out is 3x2, but I would like it to be 2x3
#I then want to append t(out) (out as a 2x3 matrix) to b, a 1x3 dataframe
b <- data.frame(var3=c(0,0,0))
Run Code Online (Sandbox Code Playgroud)

当我试图附上这些时,

b[,c('col2','col3')] <- t(out)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Warning message:
In `[<-.data.frame`(`*tmp*`, , c("col2", "col3"), value = list(1,  :
  provided 6 variables to replace 2 variables
Run Code Online (Sandbox Code Playgroud)

虽然以下似乎给出了预期的结果:

rownames(out) <- c('col1', 'col2')
b <- …
Run Code Online (Sandbox Code Playgroud)

r vectorization apply data-structures

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

将xml解析为R中的列表:当xml结构变化时如何一致地访问节点?

背景

我有一个xml设置文件,如下所示:

<level1>
 <level2>
   <level3>
    <level4name>bob</level4name>
   </level3>
 </level2>
</level1>
Run Code Online (Sandbox Code Playgroud)

但可能有多个实例 level3

<level1>
 <level2>
   <level3>
    <level4name>bob</level4name> 
   </level3>
   <level3>
    <level4name>jack</level4name> 
   </level3>
   <level3>
    <level4name>jill</level4name> 
   </level3>
 </level2>
</level1>
Run Code Online (Sandbox Code Playgroud)

level4每个节点还可以有多种类型的节点level3:

   <level3>
    <level4name>bob</level4name> 
    <level4dir>/home/bob/ </level4dir> 
    <level4logical>TRUE</level4logical> 
   </level3>
Run Code Online (Sandbox Code Playgroud)

在R中,我使用加载此文件

settings.xml <- xmlTreeParse(settings.file)
settings <- xmlToList(settings.xml)
Run Code Online (Sandbox Code Playgroud)

我想编写一个脚本,将包含在其中的所有值转换level4type1为此级别的唯一值的向量,但我难以尝试以适用于所有上述情况的方式执行此操作.

其中一个问题是class(settings[['level2']])前两个案例的列表和第三个案例的矩阵.

> xmlToList(xmlTreeParse('case1.xml'))
$level2.level3.level4name
[1] "bob"
> xmlToList(xmlTreeParse('case2.xml'))
                  level2
level3.level4name "bob" 
level3.level4name "jack"
level3.level4name "jill"
> xmlToList(xmlTreeParse('case3.xml'))
       level2
level3 List,3
level3 List,1
level3 List,1
Run Code Online (Sandbox Code Playgroud)

问题

我有两个问题:

  1. 如何提取'level4type1`的唯一值的向量

  2. 有一个更好的方法吗?

xml settings r

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

根据R中的日期/时间范围连接数据

我有一个文件(位置)有一个x,y坐标和一个日期/时间标识.我想从第二个表(天气)中获取具有"相似"日期/时间变量和共变量(温度和风速)的信息.诀窍是两个表中的日期/时间不完全相同.我想选择距离位置数据最近的天气数据.我知道我需要做一些关于它的循环.

Example location                                    example weather

x    y     date/time                         date/time           temp        wind
1    3     01/02/2003 18:00                  01/01/2003 13:00     12          15
2    3     01/02/2003 19:00                  01/02/2003 16:34     10          16
3    4     01/03/2003 23:00                  01/02/2003 20:55     14          22
2    5     01/04/2003 02:00                  01/02/2003 21:33     14          22
                                             01/03/2003 00:22     13          19
                                             01/03/2003 14:55     12          12
                                             01/03/2003 18:00     10          12
                                             01/03/2003 23:44     2           33
                                             01/04/2003 01:55     6           22
Run Code Online (Sandbox Code Playgroud)

因此,最终输出将是具有与位置数据正确"最佳"匹配的天气数据的表

x    y     datetime               datetime           temp        wind
1    3     01/02/2003 18:00  ----  01/02/2003 16:34     10 …
Run Code Online (Sandbox Code Playgroud)

r

9
推荐指数
2
解决办法
3023
查看次数

如何抑制未被echo = FALSE抑制的Sweave输出?

我在我的.tex文件中得到无关的输出,我无法用<>或sink()来抑制.值得注意的是,不需要的行不被.. {Schunk}或类似的包围.

当我使用DEoptim或rjags时,这种情况发生在我身上,尽管这可能不仅限于这些功能.

例子 .Rnw文件:

\documentclass[a4paper, 12]{article}
begin{document}

<<echo=FALSE>>=
require(DEoptim) 
Rosenbrock <- function(x){ #example from DEoptim authors 
  x1 <- x[1]
  x2 <- x[2]
  100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
lower <- c(-10,-10)
upper <- -lower
set.seed(1234)
DEoptim(Rosenbrock, lower, upper)

@

\end{document}
Run Code Online (Sandbox Code Playgroud)

我想要发生 的结果我想要的结果是如果输出被抑制将产生的tex文件,或者等效地,如果从.Rnw文件中删除了代码块:

\documentclass[a4paper, 12]{article}
\usepackage{Sweave}
\begin{document}

\end{document}
Run Code Online (Sandbox Code Playgroud)

会发生什么 但是,生成的.tex文件具有以下函数的输出:

\documentclass[a4paper, 12]{article}
\usepackage{Sweave}
\begin{document}

Iteration: 1 bestvalit: 132.371451 bestmemit:   -1.851683    4.543355
Iteration: 2 bestvalit: 8.620563 bestmemit:   -1.854371    3.369908
....few hundred lines of …
Run Code Online (Sandbox Code Playgroud)

latex r sweave

8
推荐指数
2
解决办法
8968
查看次数

如何评估R中样条函数的导数?

R可以使用样条线库中的splinefun()生成样条函数.但是,我需要在其一阶和二阶导数上评估此函数.有没有办法做到这一点?

例如

library(splines)
x <- 1:10
y <- sin(pi/x) #just an example
f_of_x <- splinefun(x,y)
Run Code Online (Sandbox Code Playgroud)

如何评估f'(x)为x的向量?

r spline numerical-methods

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

如何更改ggplot2中的默认主题?

背景

我想改变ggplot使用的主题,但我很难理解theme_update()文档和示例.

align_plots()用来在密度图上放置一个箱线图,但我发现没有任何代码导致错误,并留下了最小的例子.我怀疑错误是由使用引起的theme_blank(),但我不确定它为什么会发生或我如何解决它.

所以,在这里,我提供了一个最小的可重现的错误示例:

library(ggExtra)
align.plots(qplot(1))
Run Code Online (Sandbox Code Playgroud)

但是在我更新主题后它会中断:

newtheme <- theme_update(axis.text.y = theme_blank(),
                         axis.line = theme_blank(),
                         axis.title.x = theme_blank(), 
                         axis.title.y = theme_blank(),
                         axis.ticks.x = theme_blank(),
                         panel.grid.major = theme_blank(),
                         panel.grid.minor = theme_blank(),
                         panel.border = theme_blank(),
                         axis.color.y = 'white')
align.plots(qplot(1))
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Error in UseMethod("validGrob") : 
  no applicable method for 'validGrob' applied to an object of class "NULL"
In addition: Warning message:
In editThisGrob(grob, specs) : Slot 'vp' not found
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 是什么导致这个错误?

  2. 我在哪里可以获得有关使用的更多信息?theme_update()?我得到这个远在ggplot文件,并不能找到的答案ggplot网站,但我得到的最接近是polishing.r …

r ggplot2

8
推荐指数
2
解决办法
8620
查看次数

如何让emacs sql-mode使用mysql配置文件(.my.cnf)?

当我输入mysql dbname在bash提示符下,我会自动连接到数据库dbnameusername,password以及host包含在我的资料.my.cnf文件.

当我M-x sql-mysql在emacs中使用时,我再次被要求提供所有这些信息.

有没有办法让emacs sql模式使用我.my.cnf文件中的信息?

mysql emacs sql-mode

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