使用R向散点图添加趋势线

使用R向散点图添加趋势线,r,R,我有一个数据集,记录了1846-2014年间某个年龄段的人口数量(范围为0-105+),我正在绘制一个人口总数的散点图;有一个男性数据集和一个女性数据集。在那之后,我将添加一条趋势线,但我在计算如何添加时遇到了问题 到目前为止,我得到的是: B <- as.matrix(read.table("clipboard")) head(B) age <- 0:105 y <- 1846:2014 plot(c(1846:2014), c(colSums(B)), col=3, xla

我有一个数据集,记录了1846-2014年间某个年龄段的人口数量(范围为0-105+),我正在绘制一个人口总数的散点图;有一个男性数据集和一个女性数据集。在那之后,我将添加一条趋势线,但我在计算如何添加时遇到了问题

到目前为止,我得到的是:

B <- as.matrix(read.table("clipboard"))
head(B)
age <- 0:105
y <- 1846:2014
plot(c(1846:2014), c(colSums(B)), col=3, xlab="Year", ylab="Summed age", main="Summed people")

B我下载了您的数据文件,并将其发布到可访问的地方

urlsrc <- "http://www.math.mcmaster.ca/bolker/misc"
urlfn <- "201512516853914205393FolkemEttAarig.tsv"
d <- read.delim(url(paste(urlsrc,urlfn,sep="/")),header=TRUE,
                check.names=FALSE)
dm <- d[,3:171]
y <- as.numeric(names(dm))

您也可以这样做:

library("tidyr")
library("ggplot2"); theme_set(theme_bw())
library("dplyr")
d2 <- gather(dm,year,pop,convert=TRUE)
d3 <- d2 %>% group_by(year) %>% summarise(pop=mean(pop))
ggplot(d3,aes(year,pop)) + geom_point() + 
    geom_smooth(method="lm")
library(“tidyr”)
图书馆(“ggplot2”);theme_set(theme_bw())
图书馆(“dplyr”)
d2%汇总(pop=平均值(pop))
ggplot(d3,aes(年份,流行))+geom_点()
几何光滑(方法=“lm”)

在这条趋势线周围有一个置信区间,但它太窄了,很难看到


更新:我无意中在第二个图中使用了平均值而不是总和,但当然,改变它应该很容易。

@BenBolker提供了数据集。我现在用
B工作,但不确定发生了什么。谢谢你的帮助,我真的很感激。这就是为什么我们喜欢重复的例子。。。它会清楚地表明您的数据存在问题(尽管tidyr/dplyr/ggplot2版本至少增加了一点价值)
library("tidyr")
library("ggplot2"); theme_set(theme_bw())
library("dplyr")
d2 <- gather(dm,year,pop,convert=TRUE)
d3 <- d2 %>% group_by(year) %>% summarise(pop=mean(pop))
ggplot(d3,aes(year,pop)) + geom_point() + 
    geom_smooth(method="lm")