r语言 - 用于模拟的向量



目前我编写的代码如下:这是模拟的,所以没有实际数据。我有两个问题:

  1. 我有两个载体(治疗和控制),但我需要把它们变成一个单一的载体,我做了(vect),然而,我需要另一个载体是编码治疗与控制。我怎么做呢?
  2. 对于我的模型(模型),我需要拟合线性模型测试治疗效果,但我不知道如何将该效果添加到我所拥有的效果中,或者它是在我所拥有的代码中测试的?
library(car)

treat=rnorm(3, mean = 460, sd = 110)
treat
cont=rnorm(3, mean = 415, sd = 110)
cont
vect=c(treat, cont)
vect

nsims = 1000

p.value.saved = coeff.saved = vector()

for (i in 1:nsims) {
treat=rnorm(3, mean = 460, sd = 110)
cont=rnorm(3, mean = 415, sd = 110)
vect=c(treat, cont)

model = glm(treat ~ cont, family = poisson)

p.value.saved[i] = Anova(model)$P[1]
coeff.saved[i] =  coef(model)
}

谢谢!

像这样?(请注意,对连续数据运行泊松回归会得到一堆警告。

n <- 3
nsims <- 10
do.call(
rbind, 
lapply(1:nsims, function(.) {
treat <- rnorm(n, mean = 460, sd = 110)
cont <- rnorm(n, mean = 415, sd = 110)
# Instead of vect
df <- data.frame(
y = c(treat, cont), 
x = rep(c("treat", "cont"), each = n)
)
# Model the values vs treatment indicator
model <- glm(y ~ x, data = df, family = poisson)
# Extract the model's p-value and coefficient of treatment.
data.frame(p = car::Anova(model)$P, coef = coef(model)[2])
})
)

第一个创建字符串,第二个将它们合并。在您的示例中,它们的长度都是3,因此在rep("trt",3)

中重复为3。
treat_lab = c(rep("control", 3),rep("trt", 3))
treatment <- cbind(treat_lab,c(treat,cont))