我试图为矩阵中的每个单元格条目编写最小的值,无论是它的行和值还是同维新矩阵中的colsum值。
例如:
假设我有矩阵c,如下所示:
x <- matrix(seq(1:6),2)
x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6它的龙和钶钽铁矿石是:
rowSums(x)
[1] 9 12
colSums(x)
[1] 3 7 11基于这一信息,新的矩阵应该如下所示:
[,1] [,2] [,3]
[1,] 3 7 9
[2,] 3 7 11我一直在考虑使用apply,但我不知道如何编写if语句来为每个单元格条目从行和或colsum中写入最小的值。有什么想法吗?
发布于 2013-12-28 20:49:42
这可以看作是行和列和的外部乘积,其中函数取最小值:
outer(rowSums(x), colSums(x), FUN=pmin)
## [,1] [,2] [,3]
## [1,] 3 7 9
## [2,] 3 7 11发布于 2013-12-28 20:50:13
x[] <- pmin(rep(colSums(x), each = nrow(x)), rep(rowSums(x), times = ncol(x)))
x
# [,1] [,2] [,3]
# [1,] 3 7 9
# [2,] 3 7 11https://stackoverflow.com/questions/20819100
复制相似问题