现在我正在对矩阵进行采样,但应该与数据帧相同 想象我们有三个数据框
Mat1<- matrix(rexp(3, rate=.1), ncol=3, nrow=5)
Mat2<- matrix(rexp(3, rate=.1), ncol=3, nrow=5)
Mat3<- matrix(rexp(3, rate=.1), ncol=3, nrow=5)
我知道如果我想加上每个单元格并从中创建一个数据框, 我可以简单地做
M <- Mat1+Mat2+Mat3
但我想取三个细胞的平均值,而不是每三个细胞的加号,我该怎么做?
答案 0 :(得分:1)
如果有很多矩阵,您可以在将矩阵放入列表后使用Reduce
。获取元素的+
并将其除以列表的长度。
lst <- mget(paste0('Mat', 1:3))
Reduce(`+`, lst)/length(lst)
同样,你可以做到
Reduce(`+`, lst)
通常,如果对象名称遵循特定模式,这将非常有用。但是,如果矩阵是`xy13542xy&#39;,&#39; z62&#39;,&#39; Ak912f&#39;等,没有太多模式,那么我们需要手动构建列表
lst <- list(xy13542xy, z62, Ak912f)
假设有一个模式,即s1, m1, d1
等
lst <- mget(ls(pattern='^[a-z]+\\d+'))
答案 1 :(得分:1)
如果我理解正确,你可以这样做:
(Mat1+Mat2+Mat3)/3