需要按因子水平汇总数值数据

时间:2014-11-23 03:39:32

标签: r date

我对R很陌生,而且我一直试图弄清楚如何做到这一点。

我需要做的是采用非常简单的长格式数据并生成几个图形。这是我所拥有的一个例子 - 也请原谅我,但我不知道如何格式化,所以我会告诉你它在基本原始数据中是如何出现的。

 pm.data= data.frame() 

Score, Behavior, Period, Date
1, 2, 1, 9/01/2001
 3, 2, 3,  9/01/2001
2, 3, 4, 9/05/2004
4, 1, 6, 9/05/2004..............and so on

好的,所以第一个数字是行为得分(1-5),第二个数字表示观察到的目标行为(标识为1,2或3),周期表示观察行为的时间段(第1,第3,第4或第6),日期是m / d / y。对于每个日期,有12个分数(4个阶段,3个得分行为...... 4x3)

所以使用

totals = aggregate(cbind(Score) ~ Date, data = pm.data, FUN = sum)

我能够获得按日期分数的总和。然后我使用ggplot显示每天的总行为评级(Date2是我必须在aggregate()重新排列我的日期后开始的对象,以最近的日期而不是最新的日期开始)

newtotals = totals[order(as.Date(totals$Date, format = "%m/%d/%Y")),]
newtotals$Date2 = factor(newtotals$Date, as.character(newtotals$Date))
setattr(newtotals, "row.names", c("1":"14"))

  ggplot(data = newtotals, aes(x = Date2, y = Score)) + 
  geom_point() + 
  geom_hline(yintercept = 48, color = "#990000", linetype = "dashed")  +
  geom_smooth(method = "lm", se = FALSE, aes(group = 1)) + 
  geom_vline(xintercept = as.numeric(newtotals$Date2[4]), linetype = "dashed") +
  xlab("Dates by Observation Days") + 
  ylab("Total Behavior Rating") + 
  theme_bw()

现在我需要为每个时间段按日期绘制得分总和(所以图表显示每个时期的观察日期内的总行为得分)。我需要在每个图表上将行为绘制为单独的行,这样我就可以显示观察到的行为以及在哪个时期内的行为。因此,我最终应得到4个图表(每个句点一个),X上的日期,Y上的行为总和,颜色=行为,以及这些hlines和vlines。

我知道这可能有点令人困惑,所以如果你不明白我理解的意思。

0 个答案:

没有答案