非常简单的问题,我很遗憾不得不问这个问题。我希望一个有创造力的头脑有一个比我想象的更好的解决方案。
我想找到“类型”值相同的矩阵的相邻值之间的差异。对于下面的示例,我想要一个值为 2、6、1 的向量。
mat
value type
[1,] 5 A
[2,] 7 A
[3,] 1 B
[4,] 2 C
[5,] 8 C
[6,] 9 C
我尝试过以两种方式实现它,但它们都很慢:
方法 1:如果
type(row 1) = type(row 2)
,则找到value(row 2) - value(row 1)
,然后加一。如果type(row 1) != type(row 2)
,则增加 2。方法 2:遍历每个不同之处
type
并找到所有不同之处。
大约有 500,000 个不同的“类型”和 500 万个不同的行。谁能想到更有效的方法?我正在使用 R 语言进行编程,其中已经有一个函数可以为我找到差异(参见:?diff)。