【发布时间】:2018-06-03 03:54:24
【问题描述】:
我的数据集是一个包含 1000 个 data.frame(“sportdata”)类型元素的列表。列表的每个 data.frame 元素代表一分钟的数据,并且具有完全相同的列数和名称,每个 data.frame 最多有 45 个 ID(即 45 行,但在某些分钟内缺少一个或多个 ID,所以它可能是例如 35 行)。 我想对每 15 个 data.frames 的完整数据集进行组合和平均,将其添加到一个 data.frame 中并转置 data.frame,以便将 ID 作为列,将每 15 分钟的平均 SpeedKph 作为行。
我的 data.frames 列表如下所示:
head(sportdata)
[[1]]
ID Distance SpeedKph
1: 1 2247 73
2: 2 2247 73
3: 3 1970 73
4: 4 1964 74
5: 5 1971 73
[[2]]
ID Distance SpeedKph
1: 1 2247 73
2: 2 2247 75
3: 3 1970 73
4: 4 1964 74
5: 5 1971 73
[[3]]
ID Distance SpeedKph
1: 1 2247 73
2: 2 2247 80
3: 3 1970 73
4: 4 1964 74
5: 5 1971 56
我有下面的代码来组合和平均列表中的所有 data.frame,但我还没有找到一种方法来组合和平均每 15 个元素(即 15 分钟)的列表并将其添加到一个数据中。框架。
dfTotal <- rbindlist(sportdata)[,lapply(.SD,mean), list(ID)]
我希望我的理想输出 data.frame 看起来像:
#ofData.Frames | 1 | 2 | 3 |...etc.
01-15: 73 74 74
16-30: 75 77 74
31-45: 74 74 79
46-60: 78 72 74
...etc.
提前感谢您的帮助!
更新 很抱歉没有直接这样做,这是我可重现的示例。
my.df1 <- data.frame(ID = c(1:5),
Distance = c(2247,2247,1970,1964,1971),
SpeedKph = c(73,73,74,73,75))
my.df2 <- data.frame(ID = c(1:5),
Distance = c(2247,2247,1970,1964,1971),
SpeedKph = c(73,73,74,73,75))
my.df3 <- data.frame(ID = c(1:5),
Distance = c(2247,2247,1970,1964,1971),
SpeedKph = c(75,70,80,71,83))
my.list <- list(list1 = my.df1, list2 = my.df2, list3 = my.df3)
【问题讨论】:
标签: r list data.table