如何用矩阵的一行替代另一个矩阵行标签相同的行

请问:可以用一个矩阵的一行替代另一个矩阵行标签相同的行吗?例如想用 m2 的 2021.01.01 那一行替代 m1 的 2021.01.01 那一行?

m1 = matrix(1..3, 6..8);
m1.rename!(2021.01.01..2021.01.03, `A`B);
m1.setIndexedMatrix!();

m2 = matrix(101..103, 201..203);
m2.rename!(2021.01.01..2021.01.03, `A`B);
m2.setIndexedMatrix!();

请先 登录 后评论

1 个回答

veryOrdinary

如果是所有标签匹配的一起进行替换,可以参考:

m1 = matrix(1..4, 6..9);
m1.rename!(2021.01.01 2021.01.02 2021.01.03 2021.01.06, `A`B);
m1.setIndexedMatrix!();

m2 = matrix(101..103, 201..203);
m2.rename!(2021.01.01 2021.01.03 2021.01.04, `A`B);
m2.setIndexedMatrix!();
// 利用矩阵对齐操作
m1, m2=align(m1,m2, view=false)
iif(isValid(m1) && isValid(m2), m2, m1).dropna()

如果是替换给定的标签可以用:

label = 2021.01.01 2021.01.03
m1[m1.rowNames().find(label), ] = m2.loc(label)
请先 登录 后评论