我需要在数组中找到行最小值,其中每个最小值必须来自唯一的列.

| 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

R相关问答推荐

使用geom_segment()对y轴排序

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

使用R闪光显示所有数据点作为默认设置

如何从R ggplot图片中获取SVG字符串?

使用范围和单个数字将数字与字符串进行比较

将选定的索引范围与阈值进行比较

在纵向数据集中创建新行

如何提取R中其他字符串和数字之间的字符串?

减少雨云面之间的间距并绘制所有统计数据点

将文本批注减少到gglot的y轴上的单个值

在r中整理图例和堆叠图的问题

如何从嵌套数据中自动创建命名对象?在R中

为什么将负值向量提升到分数次方会得到NaN

R将函数参数传递给ggploy

附加中缀操作符

如何创建一个由一个连续变量和一个因素变量组成的复杂方框图?

如何编辑被动式数据表?

如何在一种 colored颜色 中设置数值变量的 colored颜色 和高于阈值的 colored颜色 点?

R,将组ID分配给另一个观测ID变量中的值的组合

为什么我的命令中包含的两位数不能小于和大于?