我想从以下数据集中获取:
ID Result Days Position
1 70 0 1
1 80 23 1
2 90 15 2
2 89 30 2
2 99 40 2
3 23 24 1
etc...
制作2个意大利面条图:1表示位置1,1表示位置2.我尝试了“for& if”循环,但我只是多次混合情节。我也在使用ggplot
。
dfPr <- df[df$Progress==1]
x11()
ggplot(dfPr, aes(x=OrderToFirstBx, y=result.num, color=factor(MRN))) +
geom_line() + theme_bw() + xlab("Time in Days") + ylab("ALT")
这很有效!但如果您有其他解决方案,请告诉我。
谢谢。
答案 0 :(得分:1)
您提供了有限的示例数据,您的示例代码似乎与示例数据中的变量名称不匹配,因此很难准确说出您想要的内容。
如果你想要两个单独的图,使用facet可能是最简单的。尝试
#sample data
dfPr <- structure(list(ID = c(1L, 1L, 2L, 2L, 2L, 3L), Result = c(70L,
80L, 90L, 89L, 99L, 23L), Days = c(0L, 23L, 15L, 30L, 40L, 24L
), Position = c(1L, 1L, 2L, 2L, 2L, 1L)), .Names = c("ID", "Result",
"Days", "Position"), class = "data.frame", row.names = c(NA,
-6L))
ggplot(dfPr, aes(x=Days, y=Result, group=ID)) +
geom_line() + facet_wrap(~Position)