在 R 中对一个列表矩阵应用一个函数

4
我有一个列表矩阵。
如何对每组列表应用函数,并返回与原始矩阵相同维度的矩阵?
我尝试使用apply(X=data.matrix,MARGIN=c(1,2),function(x)min(x$P)),但它返回了 Error in min(x$P) : (converted from warning) no non-missing arguments to min; returning Inf 编辑: 我拥有的数据类型示例为:
data.matrix = list()

data.matrix$first = list()
data.matrix$second = list()
data.matrix$third = list()

data.matrix$first$a = data.frame(P=runif(3))
data.matrix$first$b = data.frame(P=runif(3))
data.matrix$first$c = data.frame(P=runif(3))

data.matrix$second$a = data.frame(P=runif(3))
data.matrix$second$b = data.frame(P=runif(3))
data.matrix$second$c = data.frame(P=runif(3))

data.matrix$third$a = data.frame(P=runif(3))
data.matrix$third$b = data.frame(P=runif(3))
data.matrix$third$c = data.frame(P=runif(3))

data.matrix = do.call(rbind,data.matrix)

我想在矩阵的每个元素上获取 min(或其他内容)。

谢谢!


请提供可重现的示例! - Metrics
感谢提醒,这是一个示例。谢谢 :) - James
3
尝试使用sapply(data.matrix, function(x) min(x$P))。如果您需要填充最小值以替换数据框,则可以使用lapply(data.matrix, function(x) {x$P <- min(x$P);x}) - akrun
2
从技术上讲,您拥有一个二维数据框列表。 - Marat Talipov
Akrun,谢谢,那个方法可行!我一直在尝试使用apply,但是没有进展。 - James
1个回答

3
你可以尝试一下。
sapply(data.matrix, function(x) min(x$P))

如果`min`值应该替换`P`列。
lapply(data.matrix, function(x) {x$P <- min(x$P);x})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接