如何从R中的表列表计算加权平均值

时间:2017-05-15 10:33:41

标签: r list

我有一个列表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)等等......我怎么能这样做

1 个答案:

答案 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