【发布时间】:2014-12-23 10:55:54
【问题描述】:
我希望有人可以帮助我解决 R 中的以下问题,这似乎应该有一个简单的答案:
#create data frame
df<- data.frame(x = c(1,10,10,40,50,75,100,500,550,600), y = c("black", "black", "red", "black", "blue", "red", "red", "black", "black", "blue"))
df
x y
1 black
10 black
10 red
40 black
50 blue
75 red
100 red
500 black
550 black
600 blue
#Where x = days from time 0, y = event
如何绘制一个时间序列,其中每个变量的频率定期(例如每 30 天)用连接线绘制到每个点(即不是hist())?例如。 for (x, y) 将 plot (0-30, black) = 2, (0-60, black) = 1, (60-90, black) = 0,对每个 y 变量以此类推。
我使用tally.events() (epicalc) 在不同的数据集上取得了成功,该数据集非常适合我想要使用时间数据但不适用于不是“日期”的值。其他数据集工作如下:
positive.df
resultz datefix
13 P 2009-02-20
25 P 2009-03-23
45 P 2009-04-27
75 P 2009-07-22
82 P 2009-08-06
94 P 2009-08-19
tally.events(positive.df$datefix, breaks = c("month"), graph = TRUE, line.col ="auto", legend = TRUE, legend.site = "topright")
【问题讨论】:
-
出图频率:时间点0-30(天),黑色频率为2等
-
这有意义吗?
tapply(df$x, df$y, sum)或tapply(df$x, df$y, cumsum) -
不完全。不想对 y 列求和,想计算每个 y 区间(0-30、31-60 等)的 x 变量并绘图。类似的东西:
-
x0to30
-
这个怎么样?
tapply(df$y, as.integer(df$x/30), length)
标签: r time-series