我有一个包含值的矩阵A
。我有其他24个矩阵,其名称是:
the name of A1 is data-00.img , the name of A2 is data-01.img, the name of A3 is data-02.img.........the name of A24 is data-23.img
我想要做的是查看A中的第一个值,如果NA,返回NA但是如果有一个值例如12,则搜索其他矩阵的名称(应该是data-12.img)和然后提取相应的值并将其替换为A
中的12值。最后,对A
中的所有值执行相同操作。
感谢任何帮助!
A = matrix( c(2, 4, 3, 1, 5, 7), nrow=2,ncol=3, byrow = TRUE)
A1 = matrix( c(3, 6, 3, 1, 9, 7), nrow=2,ncol=3, byrow = TRUE)
A2 = matrix( c(2, 3, 3, 1, 8, 3), nrow=2,ncol=3, byrow = TRUE)
A3 = matrix( c(2, 9, 3, 1, 5, 7), nrow=2,ncol=3, byrow = TRUE)
......
A24 = matrix( c(2,9, 3, 1, 7, 7), nrow=2,ncol=3, byrow = TRUE)
上面我试图给出一个可重复的例子。
答案 0 :(得分:2)
问题不是很清楚,我认为这就是你需要的:
#dummy data
A = matrix( c(2, 4, NA, 1, 5, 7), nrow=2,ncol=3, byrow = TRUE)
A1 = matrix( c(1:6), nrow=2,ncol=3, byrow = TRUE)
A2 = matrix( c(7:12), nrow=2,ncol=3, byrow = TRUE)
A3 = matrix( c(13:18), nrow=2,ncol=3, byrow = TRUE)
A4 = matrix( c(19:24), nrow=2,ncol=3, byrow = TRUE)
A5 = matrix( c(25:30), nrow=2,ncol=3, byrow = TRUE)
A6 = matrix( c(31:36), nrow=2,ncol=3, byrow = TRUE)
A7 = matrix( c(37:42), nrow=2,ncol=3, byrow = TRUE)
#result
matrix(sapply(seq_along(A),
function(i){
if(is.na(A[i])) NA else
get(paste0("A",A[i]))[i]
}),
nrow=2)
# [,1] [,2] [,3]
# [1,] 7 20 NA
# [2,] 4 29 42