我有一个列表time_info_summary
> time_info_summary
$mon_from_time
0700 0800
14 388
$mon_to_time
1800 1830 2000 2100 2200 2300
1 1 60 121 214 5
$tue_from_time
0700 0800
14 388
$tue_to_time
1800 1830 2000 2100 2200 2300
1 1 60 121 214 5
这是一个表格列表。
> typeof(time_info_summary)
[1] "list"
它包含时间(例如“mon_from_time”为0700,其中计数为14,而0800计数为388)。我想计算每个列表项的加权平均时间。即,“mon_from_time”的加权平均值是什么((0700 * 14 + 0800 * 388)/ 402 = 0796)等等......我怎么能这样做
答案 0 :(得分:0)
这应该可行,即使它不是很优雅。
> tabs<- apply(time_info_summary, 2, table)
> lapply(tabs, function(x) weighted.mean(as.numeric(names(x)), x)/100)
$mon_from_time
[1] 7.965174
$mon_to_time
[1] 10.85348
$tue_from_time
[1] 7.965174
$tue_to_time
[1] 10.85348