我有两个(真的:多个)向量并将它们合并在一起(真的:到非常大的df)。当我合并时,如果在一个向量中有一个实例而不是另一个向量,则它在合并的df中显示为NA:
> a=data.frame(table(letters[1:4]))
> b=data.frame(table(letters[4:10]))
> merge(a,b,by='Var1',all=1)
Var1 Freq.x Freq.y
1 a 1 NA
2 b 1 NA
3 c 1 NA
4 d 1 1
5 e NA 1
6 f NA 1
7 g NA 1
8 h NA 1
9 i NA 1
10 j NA 1
> m=merge(a,b,by='Var1',all=1)
是否可以将NA的直接转换为0,而无需添加额外的代码行
> m[is.na(m)]=0
> m
Var1 Freq.x Freq.y
1 a 1 0
2 b 1 0
3 c 1 0
4 d 1 1
5 e 0 1
6 f 0 1
7 g 0 1
8 h 0 1
9 i 0 1
10 j 0 1
原因:我的df非常大,我不想使用大量的处理能力
答案 0 :(得分:0)
您的建议应该直接使用,或者至少我如何理解您的问题:
> d <- data.frame(rep(NA,10),rep(1,10),rep(NA,10))
> d
rep.NA..10. rep.1..10. rep.NA..10..1
1 NA 1 NA
2 NA 1 NA
3 NA 1 NA
4 NA 1 NA
5 NA 1 NA
6 NA 1 NA
7 NA 1 NA
8 NA 1 NA
9 NA 1 NA
10 NA 1 NA
> d[is.na(d)] <- 0
> d
rep.NA..10. rep.1..10. rep.NA..10..1
1 0 1 0
2 0 1 0
3 0 1 0
4 0 1 0
5 0 1 0
6 0 1 0
7 0 1 0
8 0 1 0
9 0 1 0
10 0 1 0