【发布时间】:2018-01-22 11:28:44
【问题描述】:
我是一个编程初学者,我无法解决这个问题:
我有一个长度为 132 的向量和两个大小为 132x24 的矩阵 A 和 B。我想获取向量的每一个值并将其与矩阵 A 逐行进行比较。如果该值出现在 A 中,我希望该列的索引转到矩阵 B 并从具有相同位置的列中选择值(行和列索引),如矩阵 A 中的结果。结果应作为具有相同长度 132 的向量返回。
如何做到这一点?我需要一个 for 循环还是有一些聪明的方法来处理包?
很遗憾,我无法提供示例数据。
感谢您的帮助!
# vector v contains values that I want to compare with matrix A
> v
[1] 5 1 10 1 7
# every single value of v occurs in every row of A only once
# I want to have the position of this value in matrix A
> A
[,1] [,2] [,3] [,4]
[1,] 5 7 4 1
[2,] 14 1 3 3
[3,] 13 3 1 10
[4,] 2 1 5 8
[5,] 13 2 5 7
# the position in matrix A equals the position in matrix B
# now the values of B have to be returned as a vector
> B
[,1] [,2] [,3] [,4]
[1,] 6 3 4 3
[2,] 5 2 5 5
[3,] 4 6 3 1
[4,] 3 6 1 5
[5,] 2 4 6 3
# vector with fitting values of B
> x
[1] 6 2 1 6 3
【问题讨论】:
-
132 列,24 行?
-
不,132x24 所以 132 行和 24 列
-
需要明确地说,这两种方式都没有规则。即使有,最好还是清楚一点。既然你拒绝提供样本数据并期望我们弄清楚,我们不想把时间浪费在错误的方向上
-
为什么不能分享样本数据和预期输出?
-
嗯,这些信息在一小时前就很有用了……