【发布时间】:2023-03-20 07:01:01
【问题描述】:
我在每个小组中都有一些时间让参与者喝一些水(1 = 年轻人,2 = 成人)。不幸的是,我想不出一个很好的方法来区分 min(time) 和 max(time) 之间的差异。青少年为 21 小时,成人为 6 小时。这显然不起作用:
age <-c(1,1,2,1,2)
time <-hm("22:00","01:00","12:00","16:00","18:00")
drink <- data.frame(age, time)
diff <- drink %>% group_by(age) %>% summarise(max()-min())
【问题讨论】:
-
time是什么意思?是参与者喝水的时间还是喝水的时间? -
首先,这应该是
time <- hm("22:00","01:00","12:00","16:00","18:00") ; food <- data.frame(sex, time)。 (您需要将时间放在引号中,否则您将在数字上运行`:`,并且您还需要定义food),其次,您可能应该使用summarise(max(time)-min(time))(例如,您需要插入一些值转换为min/max)。 -
另外,
min/max似乎不知道如何处理此类,您可能需要在定义time时自己提取小时,例如time <- hm("22:00","01:00","12:00","16:00","18:00")@hour -
此外,如果您将摘要命名为
summarise(rng=max(time)-min(time)),您可能会发现更容易显示结果,否则列名将是表达式本身(通常不需要)。 -
可能是 OP 应该使用
time_length来计算min和max之间的差异。即food %>% group_by(sex) %>% summarise(gap = (max(time_length(time))-min(time_length(time))))