【发布时间】:2019-12-16 12:51:23
【问题描述】:
抱歉,如果这没有任何意义,这是我第一次使用 R(和一般编码)的经验,我迷路了。任何帮助将不胜感激。
我有一组来自不同国家和年份的麻疹病例数。
到目前为止,我有(我假设正确,但不完全确定):
将该数据集细分为仅包含 1998 年(至 2018 年)之后的信息,称为 All_after
使用循环(1-194 是不同的国家),运行该时间段内年份对自然对数影响的线性模型
我应该得到的是线性模型中每个国家/地区的斜率(然后我可以将其绘制为直方图)。但是,使用我当前的代码,我是“无坡度”的。我已经在循环内外尝试了 abline 函数和 lm 函数,但得到的答案是我放在括号中的任何内容都不是有限的。
到目前为止,这是我的代码:
All_after <- subset(Measles, year >= 1998, year < 2018)
attach(All_after)
All_after$Cname <- "1":"194"
log_All_after <- log(All_after[,7]+1)
i <- c(Cname="1":"194")
for (val in i) {
with(All_after[All_after$Cname==1,] plot(year,log_All_after))
model5 <- lm(log_All_after~year, data=All_after, subset=i)
}
再次道歉,如果这都是胡言乱语!
编辑:
使用 summary 函数,All_after 会出现以下内容:
> summary(All_after)
X WHO_REGION ISO_CODE Cname
Min. :3493 AFR : 987 AFG : 21 Afghanistan : 21
1st Qu.:4511 AMR : 735 AGO : 21 Albania : 21
Median :5530 EMR : 441 ALB : 21 Algeria : 21
Mean :5530 EUR :1113 AND : 21 Andorra : 21
3rd Qu.:6548 SEAR: 231 ARE : 21 Angola : 21
Max. :7566 WPR : 567 ARG : 21 Antigua and Barbuda: 21
(Other):3948 (Other) :3948
Disease year cases
measles:4074 Min. :1998 Min. : 0.0
1st Qu.:2003 1st Qu.: 0.0
Median :2008 Median : 20.5
Mean :2008 Mean : 2402.6
3rd Qu.:2013 3rd Qu.: 446.5
Max. :2018 Max. :217151.0
NA's :294
【问题讨论】:
-
嗨,Maddie,如果不知道 All_after 中的内容,很难知道您的代码出了什么问题。你能举个例子说3个国家吗?还有什么是 dim(All_after) ?
-
不要使用
attach。使用library(nlme); models <- lmList(log_All_after ~ year | Cname, data=All_after); coef(models)。但是,我不明白您创建Cname。像"1":"194"这样的语法没有意义。它可能应该是factor(1:194),但至少它仍然会假设您的数据顺序,最坏的情况是它是错误的。 -
为了提高您获得有用答案的机会,请阅读this 帖子。特别是,在您的问题中包含minimal reproducible example 是必不可少的。
-
@Roland 谢谢你的回答。我已经尝试在各个地方添加您的代码行,并将该位更改为 factor(1:194),但它只是不断抛出错误。有没有我应该添加的特定位?
-
@StupidWolf 感谢您编辑我的问题,以便在灰色编码框中显示位并为您提供答案。我已经添加了摘要 (All_after) 下出现的内容 - 这有帮助吗?