我有两个数据集A和B(如下所示),并希望根据这个条件创建第三个名为C的数据集:如果A和B的元素相同(或匹配)则它应该是C(如果然后,那个元素应该是NA /缺失。
A
2 5 9 3
5 3 2 1
2 1 1 3
乙
2 7 9 3
5 3 6 1
2 2 2 3
预期C应该看起来像
2 NA 9 3
5 3 NA 1
2 NA NA 3
两个数据有相同的尺寸,有什么建议吗?
答案 0 :(得分:3)
这应适用于数据框和矩阵。
如果A
和B
是数据框:
C <- A
C[C != B] <- NA
C
# V1 V2 V3 V4
# 1 2 NA 9 3
# 2 5 3 NA 1
# 3 2 NA NA 3
如果A
和B
是矩阵:
A <- as.matrix(A)
B <- as.matrix(B)
C <- A
C[C != B] <- NA
C
# V1 V2 V3 V4
# [1,] 2 NA 9 3
# [2,] 5 3 NA 1
# [3,] 2 NA NA 3
数据强>
A <- read.table(text = "2 5 9 3
5 3 2 1
2 1 1 3",
header = FALSE)
B <- read.table(text = "2 7 9 3
5 3 6 1
2 2 2 3",
header = FALSE)
答案 1 :(得分:3)
`is.na<-`(A,!A==B)
V1 V2 V3 V4
1 2 NA 9 3
2 5 3 NA 1
3 2 NA NA 3