R 按列对表列表应用函数

R 按列对表列表应用函数,r,R,我有一个表对象列表,例如:list(X1A.1145442=structure(c(0.3204,0.6796,0.3645,0.6355,0.1615,0.8385,0.3266,0.6734,0.2884,0.7116,0.3042,0.6958),.Dim=c(2L,6L),class=“table”,.Dimnames=list(x=c(“1”,“2”),c(“ES1-5”,“ES14-26”,“ES27-38”,“ES6-13”,“SA14-25”,“X18042”)结构=(0.443

我有一个表对象列表,例如:
list(X1A.1145442=structure(c(0.3204,0.6796,0.3645,0.6355,0.1615,0.8385,0.3266,0.6734,0.2884,0.7116,0.3042,0.6958),.Dim=c(2L,6L),class=“table”,.Dimnames=list(x=c(“1”,“2”),c(“ES1-5”,“ES14-26”,“ES27-38”,“ES6-13”,“SA14-25”,“X18042”)结构=(0.4437,0.5563,0.4264,0.5736,0.2308,0.7692,0.3896,0.6104,0.2997,0.7003,0.3148,0.6852),.Dim=c(2L,6L),class=“table”,“.Dimnames=list(x=c(“1”,“2”),c(“ES1-5”,“ES14-26”,“ES27-38”,“ES6-13”,“SA1-13”,“SA14-25”))

列表如下所示:

$`X1A.1145442`

x    ES1-5 ES14-26 ES27-38 ES6-13 SA1-13 SA14-25     
1 0.3204  0.3645  0.1615 0.3266 0.2884  0.3042
2 0.6796  0.6355  0.8385 0.6734 0.7116  0.6958

$X1A.1158042

x    ES1-5 ES14-26 ES27-38 ES6-13 SA1-13 SA14-25
1 0.4437  0.4264  0.2308 0.3896 0.2997  0.3148
2 0.5563  0.5736  0.7692 0.6104 0.7003  0.6852
我希望以列方式获得表列表中每个元素的最小值

我尝试了一些与拉普利,但没有成功。有人可以帮我在这方面请

问候,


Alex

它是一个
矩阵的
列表。因此单位将是每个元素。如果我们使用
lappy
,那么它将循环通过每个元素,除非它转换为
数据.frame
。在这里,我们可以使用
应用
并将
边距指定为2(用于循环通过列)


或者另一个选项是来自矩阵状态的
colMins

library(matrixStats)
lapply(lst1, colMins)

lappy(x,addmargins,1,min)
可用于向每个矩阵添加
min
行。您能解释一下为什么
apply
在嵌套在
lappy
中的第一个解决方案中有效吗?我注意到列表中的对象类被强制为
numeric
。所以我猜它不是
data.frame
,仍然有效。@Alexandremondani,则
lst1
矩阵的
列表
。使用
apply
,可以在任何矩阵中按列(
MARGIN=2
)或按行(
MARGIN=1)应用函数
。当我们有一个
列表
时,在
列表
中循环的常用函数是
lapply/sapply/vapply
等。在这里,我选择
lapply
循环列表,然后在
apply
中的每个矩阵上按列应用函数
min
。希望这是清楚的
apply
可用于
矩阵
数据.框架
,而
lappy
可用于
数据.框架
列,因为列是data.frame中的一个单位,而
矩阵
中的单位是单个元素,即矩阵是具有
dim
属性的向量
library(matrixStats)
lapply(lst1, colMins)