【发布时间】:2012-04-11 21:38:49
【问题描述】:
图表,我已经下来了。 挑战在于我有 _exact_same_code_ 用于绘制多个数据集(更确切地说,是一个 LARGE 数据集的子集),但我似乎无法正确使用循环代码来正确替换 $。
数据集,df1, df2, df3...的形式:
OBSDATE REGION AVG_RESP P10 P90
2012-02-01 APAC 1.276 0.78 3.45
2012-02-01 EMEA 2.341 1.23 5.67
2012-02-02 APAC 1.343 0.89 3.21
2012-02-02 EMEA 2.473 1.37 5.98
图形比较复杂,但是像这样:
avgMx <- quantile(df1$P90,0.95)
ggplot(df1,aes(x=OBSDATE,y=AVG_RESP))+coord_cartesian(ylim=c(0,avgMx))+geom_ribbon(aes(ymin=P10,ymax=P90),fill="gray60",alpha=0.33)+geom_line(aes(x=OBSDATE,y=AVG_RESP),color="#007DB1",size=0.5)+facet_wrap(~REGION)
如果我使用数据集名称定义一个向量或列表(两者似乎都失败并显示相同的错误消息),我无法让循环工作以查找任何描述性值(如上面的分位数甚至最大值! )
filenames <- c("df1","df2","df3")
我想让这样的东西工作
for (i in filenames) {
quantile(i$AVG_RESP,0.95)
max(i$AVG_RESP)
}
但我收到有关 $ 对原子向量无效的错误。经调查,这似乎没有产生任何有用的结果。
所以,我可以让它工作:
max(df1$AVG_RESP) or max(df1['AVG_RESP'])
它们都会从上面输出 2.473。但是,这不会飞:
for (i in pagesC) max(i['AVG_RESP'])
它什么都不做。改成这样:
for (i in pagesC) print(max(i['AVG_RESP']))
给出 NA 的实例。
我完全被困住了。任何帮助将不胜感激!
编辑:我修复了导致错误的数据 - 现在应该可以重现了。
【问题讨论】: