在R中为什么我可以将均值/和/等应用于1-D向量而不是1-D列表?如何在列表上执行此类操作?
示例:
> myvector <- c(1,2,3,4)
> myvector
[1] 1 2 3 4
> sum(myvector)
[1] 10
> mylist <- list(1,2,3,4)
> mylist
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument
答案 0 :(得分:3)
我认为最好的选择是使用unlist
将列表缩减为向量,然后调用该函数。我创建了以下包装函数:
call_function_on_list = function(func, l) {
func(unlist(l))
}
l = c(1,2,3,4)
call_function_on_list(mean, l)
# [1] 2.5
call_function_on_list(sd, l)
# [1] 1.290994
call_function_on_list(sum, l)
# [1] 10