小编Ben*_*ker的帖子

在LME中向后选择,在后向解决中出现奇点

我有数据,其中"飞行速度"是响应变量和group(实验/控制),test(第一/第二),FL(燃料负载,来自瘦体重的%:从0到~25%),wing(翼长度,mm) ).由于我们已经对同一只鸟进行了两次测试(第一次和第二次测试,实验组被感染),我想要执行混合模型(添加随机项~1|ring).由于异方差性,我还weighttest变量添加了参数.

mod<-lme(speed~test* group * FL * wing,weight=~1|test,random=~1|ring,data=data,method="ML")
Run Code Online (Sandbox Code Playgroud)

这就是完整模型的样子(我使用nlme包).之后我开始向后选择.我手动完成(根据最低的AIC),然后用函数stepAIC(MASS包)检查结果.在这种情况下,前两个选择步骤很好,但是当我从模型开始时:

mod3<-lme(speed~test+group + FL + wing+ test:group + group:FL + FL:wing + test:group:wing, weight=~1|test,random=~1|ring,data=data,method="ML")
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

 Error in MEEM(object, conLin, control$niterEM) : 
    Singularity in backsolve at level 0, block 1
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着并非所有因素的相互作用都存在.但是我应该已经完整模型得到了同样的错误.而对于其他响应变量,它运作良好.如果你们有任何想法,我会很高兴的!

原始数据

ring    group   wing    speed_aver  FL  test
1   XZ13125 E   75  0.62    16.2950000  first
2   XZ13125 E   75  0.22    12.5470149  second
3   XZ13126 E …
Run Code Online (Sandbox Code Playgroud)

r mixed-models

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

具有指定平均值的样本整数值

我想在R中生成具有指定均值的整数样本.我曾经mu+sd*scale(rnorm(n))生成一个n具有精确均值= 的值的样本,mu 但这会产生浮点值; 我想生成整数值.例如,我想生成一个mean = 4的样本.我的样本大小n= 5,生成值的示例为{2,6,4,3,5}.有关如何在R中执行此操作同时满足特定值的约束的任何想法?

random r mean

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

乘法函数

假设我在R中有两个数字函数,例如,cos和exp.有一个新的函数对象f(x)= cos(x)*exp(x)的最快方法是什么?我可以将其定义为

f <- function(x) {cos(x)*exp(x) }
Run Code Online (Sandbox Code Playgroud)

但有没有这样做的简写方法(例如f = cos*exp)

r function

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

如何绘制与平均值的偏差

在RI中创建了一个简单的一列矩阵,产生一个带有集合均值和给定标准差的数字列表.

rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
r <- rnorm2(100,4,1)
Run Code Online (Sandbox Code Playgroud)

我现在想绘制这些数字与平均值的差异.我可以在Excel中执行此操作,如下所示:

在此输入图像描述

但是我想用ggplot2Excel中的R形图来创建一个图形,我用线图来欺骗,但如果我能用列做这个就更好了.我尝试过使用散点图,但我无法弄清楚如何将其转换为与均值的偏差.

r mean ggplot2

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

舍入小浮点数

假设我有一个数字向量,我想要舍入到"更漂亮"的数字,例如:

vec <- c(1.739362e-08,8.782537e-08,0.5339712)
Run Code Online (Sandbox Code Playgroud)

我希望它是:

pretty.vec <- c(1.74e-08,8.78e-08,0.53)
Run Code Online (Sandbox Code Playgroud)

我如何实现这一目标?使用round并没有真正帮助,因为它将前两个元素舍入为0:

> round(vec,2)
[1] 0.00 0.00 0.53
Run Code Online (Sandbox Code Playgroud)

r rounding

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

如何在R中最小化此功能?

我正在尝试编写一个公式来确定一个a最小化函数输出的值myfun(即a-fptotal).MWE:

c <- as.matrix(c(.25,.5,.25))
d <- as.matrix(c(10000,12500,15000))
e <- 700
f <- 1.1
tr <- .30

myfun <- function(a) {
   b <- max(a-e,0)
   df <- data.frame(u1=c(c*b*.40),u2=c(c*b*.60))
   df$year <- 1:nrow(df)
   df$factor <- 1/(f)^df$year
   df$d <- d
   df$t <- (df$d-df$u1-df$u2)*tr
   df$f <- df$d-df$t
   df$fp <- df$f*df$factor
   fptotal <- sum(df$fp)
   return(a-fptotal) # what is a good approach to minimize this?
}
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情没有任何成功:

o2 <- optimize(myfun, lower = 0, upper = 30000)
Run Code Online (Sandbox Code Playgroud)

正确的答案应该是28355:

myfun(28355)  
## [1] …
Run Code Online (Sandbox Code Playgroud)

optimization r function mathematical-optimization

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

飞跃:运行所有可能的线性模型

我试图使用R包leaps来运行所有可能的回归模型组合 - 所有可能的大小 - 在单个因变量和大于50个可能的预测变量上.每个变量是大约50个数值的向量.

这是我尝试过没有成功的:

vars <- c("var1", "var2", "var3", ... , "var60")
xs <- as.formula(paste("yvar ~ ", paste(vars, collapse="+")))
model1 <- regsubsets(x=xs, y=yvar, really.big=TRUE, 
    method="exhaustive", data=data)
summary(model1)
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

Warning message:
In leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax, force.in = force.in,:
15  linear dependencies found
Run Code Online (Sandbox Code Playgroud)

regression r

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

如何快速地进行大矩阵与向量的元素乘法?

我想对一个非常大的二进制矩阵的每一行进行向量的元素乘法。我的向量的长度等于我的矩阵的列数。我已经实现了使用 for 循环如下,但它非常慢。有谁知道加快速度的解决方案?

A <- c()
M # Binary matric
W <- matrix(0, nrow=nrow(M), ncol=ncol(M))
W <- data.frame(W)
for (i in 1:nrow(W)) {
    W[i,] <- M[i,] * A
}
Run Code Online (Sandbox Code Playgroud)

r

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

R包"学者"/获得文章的引文历史

我对R包学者有疑问

什么有效:

get_citation_history(SSalzberg)
Run Code Online (Sandbox Code Playgroud)

什么不:

get_article_cite_history(SSalzberg, "any article")
Run Code Online (Sandbox Code Playgroud)

代码:

article <- "Ultrafast and memory-efficient alignment of short DNA sequences to the human genome"
SSalzberg <- "sUVeH-4AAAAJ" (Google Scholar ID)
get_article_cite_history(SSalzberg, article)
Run Code Online (Sandbox Code Playgroud)

错误信息:

Error in min(years):max(years) : result would be too long a vector
In addition: Warning messages:
1: In min(years) : no non-missing arguments to min; returning Inf
2: In max(years) : no non-missing arguments to max; returning -Inf
Run Code Online (Sandbox Code Playgroud)

我不理解该函数上下文中的错误消息,我尝试了另一篇文章与另一位作者没有成功.我不知道我在这里失踪了什么....谢谢

r google-scholar

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

为什么 deque 比 queue 快?

我有以下工作代码(g++ 8.2,C++17 标准。)

    queue<TreeNode*> q{};

    q.push(root);
    q.push(nullptr);
    int sum = root -> val;
    while (!q.empty()) {
        TreeNode *n = q.front();
        q.pop();

        if (n != nullptr) {
            sum += n->val;
            if (n-> left != nullptr) q.push(n->left);
            if (n-> right != nullptr) q.push(n->right);   
        } else {
            if (q.empty()) break;
            q.push(nullptr);
            sum = 0;
        }

    }
    return sum;
Run Code Online (Sandbox Code Playgroud)

然后我queue<TreeNode*>deque<TreeNode*>. 事实证明,速度至少提高了 20%。为什么deque<TreeNode*>比 快这么多queue<TreeNode*>

c++ queue deque data-structures

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