Apply function to list matrix in R

I have a list matrix.

How to apply a function to each set of lists and return a matrix of the same size as my original matrix?

I tried apply(X=data.matrix , MARGIN=c(1,2) , function(x) min(x$P) )but came backError in min(x$P) : (converted from warning) no non-missing arguments to min; returning Inf

EDIT : An example of the type of data that I have:

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)

I want to get min(or something else) for each element of the matrix.

Thank!

+4
source share
1 answer

You can try

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

If values minshould replace the columnP

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

All Articles