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)