好的,这就是问题所在。
我有一个数据集,列出了在不同时间与各种ID相关的活动(各种类型)。数据集实际上是几万行长,看起来像这样
ID DATE_EVENT TIME_EVENT EVENT_TYPE
1: 520424473 07/08/2014 09:28:16 9,210
2: 504344215 07/08/2014 09:10:27 1,000
3: 051745297 07/08/2014 09:40:16 1,000
4: 961837100 07/08/2014 09:44:13 1,000
5: 412980113 07/08/2014 09:40:59 1,000
6: 051745297 07/08/2014 09:40:23 9,034
7: 520424473 07/08/2014 09:28:22 1,000
我希望能够通过ID对事物进行分组,然后按时间顺序排序,然后统计整个数据集中每个EVENT_TYPE花费的时间,(甚至在范围内更好) EVENT_TYPES)。我之前用过这个
library(data.table)
setDT(Allvol)[, list(mean = mean(volume, na.rm = T),
sd = sd(volume, na.rm = T)), by = ID]
以前的某些数据是为了按ID对数据进行分组,然后计算每个数据的均值和s.d,但是该数据集略有不同,我有一个与EVENT_TYPES相关的卷的列。我想我需要类似的东西,但不知道如何处理这个问题。
非常感谢任何帮助!
答案 0 :(得分:0)
您尚未提供数据,但以下内容可能会有所帮助:
volume = sample(1000:2000,100)
id = sample(1:10,100, replace=T)
allvol = data.frame(id, volume)
head(allvol)
id volume
1 5 1946
2 6 1828
3 5 1851
4 6 1296
5 5 1285
6 8 1238
means = with(allvol, tapply(volume, id, mean))
sds = with(allvol, tapply(volume, id, sd))
outdf = data.frame(id=names(means), means, sds)
outdf
id means sds
1 1 1566.000 397.5433
2 2 1504.818 368.3938
3 3 1660.600 328.4202
4 4 1518.308 265.1347
5 5 1482.000 309.9055
6 6 1342.800 281.8632
7 7 1555.444 232.2246
8 8 1556.667 286.3241
9 9 1588.500 283.5166
10 10 1505.867 348.3440