我需要在数组中找到行最小值,其中每个最小值必须来自唯一的列.
| X1 | X2|X3|
| 4 | 5 | 6|
| 1 | 2 | 3|
| 7 | 8 | 9|
使用rowMin时,输出为4,1,7.然而,我需要的输出是每行对每列的唯一最小值.
我需要在数组中找到行最小值,其中每个最小值必须来自唯一的列.
| X1 | X2|X3|
| 4 | 5 | 6|
| 1 | 2 | 3|
| 7 | 8 | 9|
使用rowMin时,输出为4,1,7.然而,我需要的输出是每行对每列的唯一最小值.
可以按如下方式使用递归:
unique_min <- function(mat){
if(NCOL(mat) == 1) min(mat)
else c(min(mat[,1]), Recall(mat[-which.min(mat[,1]), -1]))
}
unique_min(df)
[1] 1 5 9
请注意,以上是按列方式而不是按行方式执行的结果.如果按行操作:
unique_min(t(df))
[1] 4 2 9