我的数据如下:
> operation_time nb_reaction
> 13.02 14
> 13.08 4
> 13.58 17
> 14.02 36
> 14.09 44
> 14.52 64
> 15.03 78
我想绘制(在条形图中)这些数据x =时间和y = nb_reaction,例如通过每30分钟对它们进行分组,例如13.02和13.08将包含在同一个条形图中,之后的第二个半小时在14.02和14.09之后将包含13.58 onlyr。
怎么做?
非常感谢
答案 0 :(得分:1)
假设您的两列都是数字的,您可以这样做:
#this function returns the decimal of a number
decimal <- function(x) {
decs <- as.numeric(substr(format(x,2), 4,5))
decs
}
然后使用上面的函数来计算时间:
#Just an ifelse function to round the time to either .00 or .30
df$round_time <- ifelse(decimal(df$operation_time) < 30,
df$operation_time - decimal(df$operation_time) / 100,
df$operation_time - decimal(df$operation_time) / 100 + 0.30)
然后汇总以下内容:
toplot <- aggregate(nb_reaction ~ round_time, data=df, FUN=sum)
最后的情节:
barplot(toplot$nb_reaction, names.arg=as.character(toplot$round_time) )
P.S。如果您愿意,可以在上面的names.arg上提供自己的标签。