Forestplot-多变量和数据帧
我使用以下代码来执行forestplot 它工作得很好,没有问题,但我想从两个数据帧绘制forestplot。因此,结果要么是来自每个数据帧的变量在彼此下面,要么是在同一行中具有不同颜色的变量 另外,ggplot将变量的顺序更改为Z->A,我希望它们保持非字母顺序Forestplot-多变量和数据帧,r,ggplot2,R,Ggplot2,我使用以下代码来执行forestplot 它工作得很好,没有问题,但我想从两个数据帧绘制forestplot。因此,结果要么是来自每个数据帧的变量在彼此下面,要么是在同一行中具有不同颜色的变量 另外,ggplot将变量的顺序更改为Z->A,我希望它们保持非字母顺序 forestplot <- function(d, xlab="Estimate", ylab="Study"){ require(ggplot2) p <- ggplot(d, aes(x=x, y=y, ymin
forestplot <- function(d, xlab="Estimate", ylab="Study"){
require(ggplot2)
p <- ggplot(d, aes(x=x, y=y, ymin=ylo, ymax=yhi)) +
geom_pointrange() +
coord_flip() +
geom_hline(yintercept=0, lty=3) +
ylab(xlab) +
xlab(ylab) + #switch because of the coord_flip() above
ggtitle("...")
return(p)
}
forestplot(d)
forestplot只需在函数开头绑定两个数据帧:
forestplot <- function(d1, d2, xlab="Estimate", ylab="Study")
{
d = rbind(cbind(d1, df = "1"), cbind(d2, df = "2"))
require(ggplot2)
p <- ggplot(d, aes(x=x, y=y, ymin=ylo, ymax=yhi, color = df, group = df)) +
geom_pointrange(position = position_dodge(width = 0.5)) +
coord_flip() +
geom_hline(yintercept=0, lty=3) +
ylab(xlab) +
xlab(ylab) + #switch because of the coord_flip() above
ggtitle("...")
return(p)
}
我无法用此数据重现您的错误(注释),问题可能在输入数据框中。只需在函数开头绑定两个数据框:
forestplot <- function(d1, d2, xlab="Estimate", ylab="Study")
{
d = rbind(cbind(d1, df = "1"), cbind(d2, df = "2"))
require(ggplot2)
p <- ggplot(d, aes(x=x, y=y, ymin=ylo, ymax=yhi, color = df, group = df)) +
geom_pointrange(position = position_dodge(width = 0.5)) +
coord_flip() +
geom_hline(yintercept=0, lty=3) +
ylab(xlab) +
xlab(ylab) + #switch because of the coord_flip() above
ggtitle("...")
return(p)
}
我无法用此数据重现您的错误(评论),问题可能出在输入数据框中。非常感谢!这对我帮助很大!事实上,我还有一个问题。。你给我的脚本是有效的,但估计值不正确,它将结果绘制为不正确的值,例如:在数据帧1中:CRP11=平均值0.06406516 ylo 0.012618338 yhi 0.11551199数据帧2:CRP11=平均值-0.010406175 ylo-0.0634425313 yhi 0.04263018。。。。在数据帧1(灰色):CRP11=平均值0.06406516 ylo 0.012618338 yhi 0.11551199数据帧2(黄色):CRP11=平均值-0.010406175 ylo-0.0634425313 yhi 0.04263018仍然结果如下:值不在其位置@bVaI刚刚编辑了我的答案。这些值与您的数据不在同一位置,我用答案中使用的数据进行了检查,在这里它起作用了。我无法再现你的错误。也许可以检查并更正函数中的变量名(y=mean
?)。是的,我现在就得到了它,代码中有一个错误,导致结果混乱。对不起打扰了,谢谢!非常感谢你!这对我帮助很大!事实上,我还有一个问题。。你给我的脚本是有效的,但估计值不正确,它将结果绘制为不正确的值,例如:在数据帧1中:CRP11=平均值0.06406516 ylo 0.012618338 yhi 0.11551199数据帧2:CRP11=平均值-0.010406175 ylo-0.0634425313 yhi 0.04263018。。。。在数据帧1(灰色):CRP11=平均值0.06406516 ylo 0.012618338 yhi 0.11551199数据帧2(黄色):CRP11=平均值-0.010406175 ylo-0.0634425313 yhi 0.04263018仍然结果如下:值不在其位置@bVaI刚刚编辑了我的答案。这些值与您的数据不在同一位置,我用答案中使用的数据进行了检查,在这里它起作用了。我无法再现你的错误。也许可以检查并更正函数中的变量名(y=mean
?)。是的,我现在就得到了它,代码中有一个错误,导致结果混乱。对不起打扰了,谢谢!这在forestplot包中是可能的这在forestplot包中是可能的
print(d1)
y x ylo yhi
1 0.2655087 s5 0.059534088 0.4420654
2 0.3721239 s4 0.166149325 0.5486807
3 0.5728534 s2 0.366878788 0.7494101
4 0.9082078 s3 0.702233215 1.0847645
5 0.2016819 s1 -0.004292644 0.3782387
print(d2)
y x ylo yhi
1 0.6870228 s5 0.03534908 0.8125779
2 0.3841037 s2 -0.26757005 0.5096588
3 0.7698414 s3 0.11816765 0.8953965
4 0.4976992 s4 -0.15397452 0.6232543
5 0.7176185 s1 0.06594474 0.8431736