【发布时间】:2013-07-26 05:15:10
【问题描述】:
我有一个大型数据集,我不想拆分它,因为它会相当耗时。一列包含一个公园列表,我想为其制作单独的地块,因为每个地块属于不同的地方。每个公园都需要按区域和年份分组为时间序列图。 Height_mm 的平均值也需要使用标准误差进行计算。有 5 个不同的公园,每个公园有 3 个不同的区域和 10 个不同的年份。 csv中有超过5000条记录。
head(data)
Park_name Zone Year Height_mm
1 Park1 Zone1 2011 380
2 Park1 Zone1 2011 510
3 Park1 Zone1 2011 270
4 Park1 Zone2 2011 270
5 Park1 Zone2 2011 230
6 Park1 Zone2 2011 330
我希望能够操纵下面的代码来完成这项工作,尽管我只是想不通。不过,我很乐意接受任何其他建议。
library(ggplot2)
library(plyr)
data=read.table("C:/data.csv", sep=",", header=TRUE)
ggplot(data, aes(x=Year, y=Height_mm)) +
#geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.05, colour="black", position=pd) +
geom_line() +
geom_point(size=3, fill="black") +
xlab("Year") +
ylab("Mean height (mm)") +
#facet_wrap(~Park_name, scales = "free", ncol=2) + #I'd like something like this but with all plots as separate figures
theme_bw() +
theme(axis.text.x=theme_text(),
#axis.title.x=theme_blank(),
#axis.title.y=theme_blank(),
axis.line=theme_segment(colour="black"),
panel.grid.minor = theme_blank(),
panel.grid.major = theme_blank(),
panel.border=theme_blank(),
panel.background=theme_blank(),
legend.justification=c(10,10), legend.position=c(10,10),
legend.title = theme_text(),
legend.key = theme_blank()
)
我假设我需要某种“for”循环,但我不知道该放在哪里或如何使用它。谢谢
【问题讨论】:
-
您是否考虑过
aggregate、split、by或tapply来分割数据? -
5000 条记录现在被视为 小型 数据集,并且不会花费太多时间来拆分
-
如果我打电话给
p你原来的情节,你可以做d_ply(Y, "Park_name", "%+%", e1=p)。