R语言使用apply函数求含列表元素的矩阵均值返回NA如何解决
问题原因
你的输入对象是列表矩阵,每个单元格存储的是包裹在列表结构中的数值向量,直接调用mean()函数时,函数识别到传入的是列表类型而非数值向量,因此抛出报错并返回NA。
解决方法
只需要修改apply()调用的自定义函数,先将列表元素拆解为数值向量再计算均值即可,代码如下:
apply(output, 1:2, function(x) mean(unlist(x)))
如果你的向量中可能存在NA值,需要忽略缺失值的话,可以加上na.rm = TRUE参数:
apply(output, 1:2, function(x) mean(unlist(x), na.rm = TRUE))
运行上述代码后就会得到你期望的数值矩阵,行名、列名结构和原列表矩阵完全一致,每个单元格为对应1000个数值的均值。
内容的提问来源于stack exchange,提问作者Triparna Poddar
相关产品推荐
相关产品推荐

