给出两个矩阵
a <- matrix(c("a","","","d"),2,2)
b <- matrix(c("","b","",""),2,2)
a
[,1] [,2]
[1,] "a" ""
[2,] "" "d"
b
[,1] [,2]
[1,] "" ""
[2,] "b" ""
是否有一种简单的方法可以将两者结合起来并得到
[,1] [,2]
[1,] "a" ""
[2,] "b" "d"
没有遍历每个单独的元素?
我通常对这个“合并”的问题感兴趣。但是,目前,每个单元格仅在那些矩阵之一中为非空(即,排除了单元格[1,1]
包含矩阵a
和矩阵b
中的情况)。
如果两个矩阵的维数相同,我们可以做:
ifelse(a == '', b, a)
# [,1] [,2]
#[1,] "a" ""
#[2,] "b" "d"
您也可以这样做:
a[a == "" & b != ""] <- b[b != ""]
a
[,1] [,2]
[1,] "a" ""
[2,] "b" "d"
我们也可以使用。 case_when
library(dplyr)
case_when(a== '' ~ b, TRUE ~ a)