小编Giu*_*ppe的帖子

将主标题分为两行

我希望有两行的情节标题,但这不起作用,为什么?我怎样才能让它发挥作用?

CVal<-1 
SumEpsVal<-2 
plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal) )))
Run Code Online (Sandbox Code Playgroud)

这在这里工作:

plot(1:10, main=paste("C=1", "\n", "SumXi=2"))
Run Code Online (Sandbox Code Playgroud)

我猜bquote出错了...(查询?bquote)我试图改变bqoute(where-argument)中的环境,但我不知道要采取哪种环境.

BTW:

plot(1:10, main=bquote(paste("C=", .(CVal), "bla \n ", sum(xi), "=", .(SumEpsVal) )))
Run Code Online (Sandbox Code Playgroud)

用"bla"让事情变得疯狂.

r plotmath

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

从R中的主题ID重新采样

假设我们有以下数据

set.seed(123)
dat <- data.frame(var1=c(10,35,13,19,15,20,19), id=c(1,1,2,2,2,3,4))
(sampledIDs <- sample(min(dat$id):max(dat$id), size=3, replace=TRUE))
> [1] 2 4 2
Run Code Online (Sandbox Code Playgroud)

samplingID是从中采样(替换)的id的向量dat$id.我需要导致的代码(并且也适用于包含更多变量的大型数据集):

  var1 id
   13  2
   19  2
   15  2
   19  4
   13  2
   19  2
   15  2
Run Code Online (Sandbox Code Playgroud)

代码dat[which(dat$id%in%sampledIDs),]不能给我我想要的东西,因为这段代码的结果是

  var1 id
    13  2
    19  2
    15  2
    19  4
Run Code Online (Sandbox Code Playgroud)

主题dat$id==2在此数据中只出现一次(我理解为什么这是结果,但不知道如何得到我想要的).有人可以帮忙吗?


编辑:谢谢你的答案,这里是所有答案的运行时间(对于那些感兴趣的人):

                                                                 test replications elapsed relative user.self
3   dat[unlist(lapply(sampledIDs, function(x) which(x == dat$id))), ]         1000    0.67    1.000      0.64
1 dat[which(sapply(sampledIDs, "==", dat$id), arr.ind = TRUE)[, 1], ]         1000    0.67 …
Run Code Online (Sandbox Code Playgroud)

r matrix sampling resampling

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

跟踪产品矩阵 - 更快的计算?

我正在寻找矩阵A = B'C的迹线(迹线(A))的R中的快速计算.我能想到的最快的方法如下:

set.seed(123)
n <- 10^6
B <- matrix(rnorm(n), ncol=sqrt(n))
C <- matrix(rnorm(n), ncol=sqrt(n))

ptm <- proc.time()
A <- tcrossprod(B,C)
traceA <- sum(diag(A))
proc.time() - ptm
Run Code Online (Sandbox Code Playgroud)

我问自己是否有更快的方法(特别是如果矩阵B和矩阵C是对称的,甚至是幂等的).我的意思是A <- tcrossprod(B,C)我正在计算整个矩阵A的行,尽管我只需要矩阵的对角元素之和(trace(A)).

为了加快速度,我想到了并行计算tcrossprod,但我没有找到一个实现(另外我不知道这是不是一个好主意).有人有想法吗?

parallel-processing multicore r matrix linear-algebra

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

glm 切换交互的系数名称

我使用R代码:

dat<-data.frame(p1=c(0,1,1,0,0), GAMMA.1=c(1,2,3,4,3), VAR1=c(2,2,1,3,4), GAMMA.2=c(1,1,3,4,1))
form <- p1 ~ GAMMA.1:VAR1 + GAMMA.2:VAR1
mod <- glm(formula=form, data=dat, family=binomial)
(coef <- coefficients(mod))

# (Intercept) GAMMA.1:VAR1 VAR1:GAMMA.2 
#   1.7974974   -0.2563667   -0.2181079 
Run Code Online (Sandbox Code Playgroud)

coef正如我们所看到的,交互的名称的GAMMA.2:VAR1顺序与form(我们VAR1:GAMMA.2改为)的顺序不同。由于多种原因,我需要输出

# (Intercept) GAMMA.1:VAR1   GAMMA.2:VAR1
#   1.7974974   -0.2563667   -0.2181079 
Run Code Online (Sandbox Code Playgroud)

之后无需更改系数的名称。具体来说,我希望系数的名称与我在form对象中使用的名称相同(无需像上面的代码中那样进行切换)。我可以告诉glm()不要切换交互的名称吗?

interaction r formula binomial-coefficients glm

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

指定 alpha 颜色时地毯图不起作用?

这有效:

plot(1:10, col=rgb(0,0,0,1))
rug(1:10, col=rgb(0,0,0,1))
Run Code Online (Sandbox Code Playgroud)

这不起作用(没有额外绘制地毯):

plot(1:10, col=rgb(0,0,0,0.9))
rug(1:10, col=rgb(0,0,0,0.9))
Run Code Online (Sandbox Code Playgroud)

为什么?我该如何解决这个问题?

我需要这个的原因是因为我想添加 alpha 颜色,以便重叠的“地毯”更暗。无法指定 alpha 颜色,我只能绘制这个:

plot(rep(1:10,100), rep(1:10,100), col=rgb(0,0,0,1))
rug(jitter(rep(1:10,100)), col=rgb(0,0,0,1))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

graphics plot visualization r data-visualization

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