小编Adr*_*ian的帖子

R:带有optim和nlme的错误

library(nlme)
mydat <- 
  structure(list(class = c(91L, 91L, 91L, 91L, 91L, 91L, 92L, 92L, 
                           92L, 92L, 92L, 92L, 92L, 92L, 92L, 92L, 92L, 92L, 92L, 92L, 92L, 
                           92L, 93L, 93L, 93L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 
                           94L, 94L, 94L, 94L, 95L, 95L, 95L, 95L, 95L, 95L, 95L, 95L, 95L, 
                           95L, 95L, 95L), days = c(5.7, 11.1, 13.9, 15.3, 18.3, 18.9, 1.9, 
                                                    2.1, 2.9, 3.4, 4.4, 5, 6.9, 10.4, 11.6, 13, 13.4, 15.7, 15.9, 
                                                    17.3, 17.7, 19.4, 2.3, …
Run Code Online (Sandbox Code Playgroud)

optimization r nlme hessian-matrix

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

R:在nlme函数中使用因子变量

library(nlme)
model <- nlme(height ~ (R0) + 1,
              data = Loblolly,
              fixed = list(R0 ~ 1),
              random = list(Seed = pdDiag(list(R0 ~ 1))),
              start = list(fixed = c(R0 = -8.5)))
Run Code Online (Sandbox Code Playgroud)

这是一个只有1个固定效果参数的简单模型.这个模型很合适,但是当我想引入因子水平协变量(即年龄)时,我遇到了以下错误.

Loblolly$age2 <- as.factor(ifelse(Loblolly$age < 12.5, 0, 1))
model2 <- nlme(height ~ (R0 + age2) + 1,
              data = Loblolly,
              fixed = list(R0 ~ 1 + (age2)),
              random = list(Seed = pdDiag(list(R0 ~ 1))),
              start = list(fixed = c(R0 = -8.5, age2 = 1)))

Error in chol.default((value + t(value))/2) : …
Run Code Online (Sandbox Code Playgroud)

model r nlme

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

R:创建具有 NULL 值的 data.frame

我想NULL在我的 data.frame 中包含值(而不是NA)。而以下似乎不起作用。

> data.frame(x = c(1, 2, 3), y = c(NULL, NULL, NULL))
Error in data.frame(x = c(1, 2, 3), y = c(NULL, NULL, NULL)) : 
  arguments imply differing number of rows: 3, 0
Run Code Online (Sandbox Code Playgroud)

我的目标是将 data.frame 输出到 .csv 文件中,并且包含NULL值的单元格应该为空白。

null r

4
推荐指数
1
解决办法
8071
查看次数

ggplot2:如何更改图例的顺序

library(tidyverse)
library(ggplot2)
library(ggstance)
dat <- structure(list(Gender = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
                                           1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Female", "Male"
                                           ), class = "factor"), Status = c("Case", "Case", "Case", "Case", 
                                                                            "Control", "Control", "Control", "Control", "Case", "Case", "Case", 
                                                                            "Case", "Control", "Control", "Control", "Control"), Type = c("Age30", 
                                                                                                                                          "Age30", "Age30", "Age30", "Age30", "Age30", "Age30", "Age30", 
                                                                                                                                          "Age50", "Age50", "Age50", "Age50", "Age50", "Age50", "Age50", 
                                                                                                                                          "Age50"), Risk = c(21.59862, 3.27479, 1.10073, 1.70754, 8.85253, 
                                                                                                                                                             1.66318, 0.23228, 0.44844, 18.01182, 3.80135, 1.40662, …
Run Code Online (Sandbox Code Playgroud)

visualization r ggplot2

4
推荐指数
1
解决办法
3618
查看次数

如何用预先指定的值替换矩阵中的 0

mat <- diag(3)
> mat
     [,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1
Run Code Online (Sandbox Code Playgroud)

我有一个矩阵,对角线上为 1,其他位置为 0。我想用 0.3 替换 0,所以矩阵看起来像

> mat
     [,1] [,2] [,3]
[1,]    1  0.3  0.3
[2,]  0.3    1  0.3
[3,]  0.3  0.3    1
Run Code Online (Sandbox Code Playgroud)

有什么快速方法可以做到这一点?

r matrix

4
推荐指数
2
解决办法
76
查看次数

R:用于指定字符串结尾的正则表达式char是一个字母

    string = c("Hello-", "HelloA", "Helloa")
    grep("Hello$[A-z]", string)
Run Code Online (Sandbox Code Playgroud)

我希望找到字符串的索引,其中单词"Hello"之后的下一个字符是一个字母(不区分大小写).上面的代码不起作用,但我希望grep()返回索引2和3,因为这些单词在"Hello"之后有一个字母

grep r

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

R: is.na() 没有获取 NA 值

所以我有一个数据集,只需查看它,数据集中就有明显的 NA。

 > dput(bmi.cig)
structure(list(MSI.subset.BMI = structure(c(4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 1L, 2L, 3L, 3L, 1L, 3L, 3L, 1L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("0", "1", "2", 
"NA"), class = "factor"), MSI.subset.Cigarette = structure(c(3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 1L, 2L, 1L, 2L, 
2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("1", …
Run Code Online (Sandbox Code Playgroud)

r

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

R:如何删除data.frame中的某些行

> data = data.frame(a = c(100, -99, 322, 155, 256), b = c(23, 11, 25, 25, -999))
> data
    a    b
1 100   23
2 -99   11
3 322   25
4 155   25
5 256 -999
Run Code Online (Sandbox Code Playgroud)

对于这样的data.frame,我想删除包含-99或-999的任何行.所以我生成的data.frame应该只包含第1,3和4行.

我正在考虑为此编写一个循环,但我希望有一个更简单的方法.(如果我的data.frame要有列az,那么循环方法将非常笨重).我的循环可能看起来像这样

i = 1
for(i in 1:nrow(data)){
  if(data$a[i] < 0){
    data = data[-i,]
  }else if(data$b[i] < 0){
    data = data[-i,]
  }else data = data
}
Run Code Online (Sandbox Code Playgroud)

r subset

3
推荐指数
1
解决办法
702
查看次数

R:在图例中使用表达式

我正在尝试使用legendR 中的函数。我希望标签读取 $\alpha = 1, \beta = 2$,所以我尝试使用

legend("topleft", c(expression(alpha = 1, beta = 2)))
Run Code Online (Sandbox Code Playgroud)

但这并没有达到目的。有什么建议吗?

如果我希望我的标签显示为 $Gamma(\alpha = 1, \beta = 2)$ 该怎么办?我试过

legend("topleft", c(paste("Gamma( ", expression(alpha = 1, beta = 2))))
Run Code Online (Sandbox Code Playgroud)

plot r

3
推荐指数
1
解决办法
2827
查看次数

如何在 R 中连续连接整数向量

vec <- c(1, 3, 2, 37)
Run Code Online (Sandbox Code Playgroud)

我想连续连接这个向量,使得输出看起来像这样:

> output
[[1]]
[1] 1

[[2]]
[1] 1 3

[[3]]
[1] 1 3 2

[[4]]
[1] 1 3 2 37
Run Code Online (Sandbox Code Playgroud)

我编写了一个函数来执行此操作,但它没有给我正确的输出:

myfun <- function(vec){
  output = vector("list", length(vec))
  output[[1]] = vec[1]
  for(i in 2:length(vec)){
    output[[i]] = paste(output[[i - 1]], vec[i])
    output[[i]] = as.numeric(strsplit(output[[i]], " ")[[1]])
  }
  return(output)
}
> myfun(c(1, 3, 2, 37))
[[1]]
[1] 1

[[2]]
[1] 1 3

[[3]]
[1] 1 2

[[4]]
[1]  1 37
Run Code Online (Sandbox Code Playgroud)

r vector

3
推荐指数
1
解决办法
91
查看次数

标签 统计

r ×10

nlme ×2

ggplot2 ×1

grep ×1

hessian-matrix ×1

matrix ×1

model ×1

null ×1

optimization ×1

plot ×1

subset ×1

vector ×1

visualization ×1