我试图创建一个函数,它将采用几个参数并返回总平均小时回报。我的数据集是这样的:为R中的子集创建均值函数
Location Time units
1 Columbus 3:35 12
2 Columbus 3:58 199
3 Chicago 6:10 -45
4 Chicago 6:19 87
5 Detroit 12:05 -200
6 Detroit 0:32 11
我想回来就
Location Time units unitsph
Columbus 7:33 211 27.9
Chicago 12:29 42 3.4
Detroit 12:37 -189 -15.1
同时也保留每小时的其他项目
基本上总单位生产的单位。
我尝试了
thing <- time %>% group_by(Location) %>% summarize(sum(units))
其返回的位置和总台而不是每小时的单位。这里
fin <- mutate(time, as.numeric(sum(Time))/as.numeric(sum(units)))
Error in Summary.factor(c(118L, 131L, 174L, 178L, 57L), na.rm = FALSE) :
‘sum’ not meaningful for factors
任何帮助非常赞赏:然后我搬到
thing <- time %>% group_by(Location) %>% summarize(sum(units)) %>% summarize(sum(Time))
其返回
Error in eval(expr, envir, enclos) : object 'Time' not found
我也试过发生变异,但没有效果。我还有其他一些列,我想保留(他们是位置的地理编码等),但没有在这里列出。如果这很重要,我可以重新加入。
对于初学者,“Play.Time”不是“时间”。另外,你如何像时间对象一样总结'12:05'?他们如何存储? – thelatemail
啊是的,编辑的乐趣。 Play.Time是实际的变量,为了简单起见,我在这个问题中花了时间。编辑来解决这个问题。时间项目被存储为因子。它们是由lubridate生成的,虽然老实说我不记得我是如何生成它们的(一段时间以来一直在改进它)。 – ike
我想我的回答已经过时了。你可以把dput(time)的输出加到你的问题上,使它更容易重现。 此外,行'thing <- time %>%group_by(Location)%>%summarize(sum(units))%>%summarize(sum(Time))'包含错误。见下面 – CAFEBABE