小编use*_*564的帖子

使用ggplot2在观察样本的平均值/中值附近建立置信带的更好方法

所以我有一个三列数据框,有Trials,Ind.Variable,Observation.就像是:

df1<- data.frame(Trial=rep(1:10,5), Variable=rep(1:5, each=10), Observation=rnorm(1:50))

我试图绘制一个95%的conf.每个试验的平均值间隔使用相当低效的方法如下:

    b<-NULL
    b$mean<- aggregate(Observation~Variable, data=df1,mean)[,2]
    b$sd  <- aggregate(Observation~Variable, data=df1,sd)[,2]
    b$Variable<- df1$Variable
    b$Observation <- df1$Observation 
    b$ucl <- rep(qnorm(.975, mean=b$mean, sd=b$sd), each=10)
    b$lcl <- rep(qnorm(.025, mean=b$mean, sd=b$sd), each=10)
    b<- as.data.frame(b)
    c <- ggplot(b, aes(Variable, Observation))  
    c + geom_point(color="red") + 
    geom_smooth(aes(ymin = lcl, ymax = ucl), data=b, stat="summary", fun.y="mean")
Run Code Online (Sandbox Code Playgroud)

这是低效的,因为它复制了ymin,ymax的值.我已经看过geom_ribbon方法,但我仍然需要复制.但是,如果我使用像glm这样的任何平滑,代码更简单,没有重复.有没有更好的方法呢?

参考文献:1.R用ggplot绘制置信区间 2. 用ggplot2手动着色置信区间 3. http://docs.ggplot2.org/current/geom_smooth.html

r ggplot2 confidence-interval

8
推荐指数
2
解决办法
3711
查看次数

从邻接矩阵,r,igraph 获取传染链

问我有一个 erdos.reyni 图。我感染了一个顶点,想看看疾病会遵循哪个顶点序列?igraph 有像 get.adjacency()、neighbors() 这样有用的函数。

细节。这是具有顶点名称而不是 0,1 标志的邻接矩阵,我正试图从中消除传染链。如果某个顶点被感染,就像流行病通过图表的流/序列一样。让我们不要担心这里的感染概率(假设所有命中的顶点都以概率 1 感染)。

所以假设我点击了顶点 1(这里是第 1 行)。我们看到它有到顶点 4、5、18、22、23、24、25 的传出链接。那么接下来的顶点将是那些连接到 4,5,18...25 的顶点,即 row4, row5, row18,... row25 中的那些值。然后,根据模型,疾病将通过这些等等传播。

我知道我可以传递一个字符串来对矩阵行进行排序。我的问题是,我无法弄清楚如何生成该序列。

矩阵看起来像这样。

    > channel
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
 [1,]    4    5   18   22   23   24   25   NA
 [2,]    6   10   11   18   25   NA   NA   NA
 [3,]    7   11   18   20   NA   NA   NA   NA
 [4,]   24   NA   NA   NA   NA   NA   NA   NA
 [5,]    1    3    9   13   14   NA   NA …
Run Code Online (Sandbox Code Playgroud)

r matrix adjacency-list igraph

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