所以我有一个三列数据框,有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
问我有一个 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)