【问题标题】:apply a function to a matrix of lists in R将函数应用于 R 中的列表矩阵
【发布时间】:2015-05-08 07:33:42
【问题描述】:

我有一个列表矩阵。

如何将函数应用于每组列表并返回与原始矩阵相同维度的矩阵?

我尝试了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(或其他任何内容)。

谢谢!

【问题讨论】:

  • 请提供可重现的示例!
  • 示例制作 - 感谢提醒 :)
  • 试试sapply(data.matrix, function(x) min(x$P))如果需要填充最小值替换data.frame lapply(data.matrix, function(x) {x$P <- min(x$P);x})
  • 技术上,你有一个二维的数据框列表
  • Akrun,谢谢,成功了!我正在尝试apply,因为它是一个矩阵并且没有任何位置。

标签: r list matrix apply


【解决方案1】:

你可以试试

sapply(data.matrix, function(x) min(x$P))

如果 min 值应替换 P

lapply(data.matrix, function(x) {x$P <- min(x$P);x})

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 2010-12-14
    • 2015-04-23
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多