r - 获取包含与另一个数据集中的值最相似的值的行的行索引#
问题描述
假设我有 2 个矩阵 m3 和 m4:
m3 <- matrix(6:1,nrow=3,ncol=1)
[,1]
[1,] 6
[2,] 5
[3,] 4
m4 <- matrix(6:1,nrow=2,ncol=1)
[,1]
[1,] 6
[2,] 5
对于 m4(6 和 5)中的每个行值,我希望 m3 的索引行包含与 m4 的行值最相似的值(按绝对差)。
因此,由于 m4[1,1] = 6 和 m4[2,1] = 5 的值,m3 中通过绝对差最接近的值是 m3[1,1] = 6 (rowindex=1) 和 m3[2 ,1] = 5 (行索引=2)
所以,我希望矩阵 m5 是:
[,1]
[1,] 1
[2,] 2
解决方案
你可以使用sapply
-
sapply(m4, function(x) {
which.min(abs(x - m3))
}) %>%
matrix(ncol = 1)
[,1]
[1,] 1
[2,] 2
推荐阅读
- c++ - GCC中vtable的第一个地址?
- php - 如何在没有作曲家和命名空间的情况下使用记录器?
- java - 极小极大调试。不知道如何寻找代码崩溃的地方
- node.js - 使用 NodeJS 和 Angular 获取登录用户
- fish - 如何在 Fish shell 中实现选项的动态选项卡补全?
- arrays - 如何在 Django 缓存中保存数组?
- javascript - 无法获取元数据选择器文本
- jquery - 根据值jquery设置文本颜色列
- android-studio - Android Studio 3.4 - 缺少布局设计器“工具”
- azure - 在 Azure Analysis Services 中自动化 SQL DB 数据源授权