R过滤并对数据帧进行子集化

时间:2011-08-30 09:26:34

标签: r dataframe

请就以下事项给我一些建议。

有一个包含三列的数据框,第一列是日期时间(精确到秒),第二列是人名,第三列是消息。

我想检索以下信息并绘制它们。

  1. 某一分钟内每人的留言。
  2. 某人在某一分钟内的留言。
  3. 提前致谢。

1 个答案:

答案 0 :(得分:4)

R中有许多不同的日期格式。如果您没有其中一种日期格式,请使用lubridate包。

library(lubridate)

一些示例数据:

the_present <- now()
dfr <- data.frame(
  person  = rep(c("Richie", "user900168"), each = 3),
  time    = seq(the_present, by = "-1 min", length.out = 6),
  message = letters[1:6]
)

选择一个有趣的时刻:

start_time <- floor_date(the_present, unit = "min")
end_time <- ceiling_date(the_present, unit = "min")

使用subsettable来解决您的问题。

table(subset(dfr, time > start_time & time <= end_time, person))
subset(dfr, person == "Richie" & time > start_time & time <= end_time)