【发布时间】:2015-06-28 17:05:45
【问题描述】:
我有两个数据表,比如说 DT1 和 DT2:
> head(DT1)
Tienda Codigo
1: Abasto 8519202
2: Abasto 8610301
3: Abasto 8908001
4: Abasto 8911602
5: Abasto 8948801
6: Abasto 41004301
> head(DT2)
Tienda Codigo SemanaIntro
1: Abasto 43055201 30
2: Abasto 43055202 30
3: Abasto 43055203 30
4: Abasto 8785701 38
5: Abasto 41013401 38
6: Abasto 41129602 39
同班:
> class(DT1$Tienda)
[1] "factor"
> class(DT2$Tienda)
[1] "factor"
> class(DT1$Codigo)
[1] "integer"
> class(DT2$Codigo)
[1] "integer"
我想做一个合并,有些行匹配,有些不匹配
> DT3 <- merge(DT1,DT2,by = c("Tienda","Codigo"), all.x = T)
Tienda Codigo SemanaIntro
1: Abasto 0 NA
2: Abasto 0 NA
3: Abasto 733501 NA
4: Abasto 733501 NA
5: Abasto 733501 NA
6: Abasto 845402 NA
SemanaIntro 列的每一行都是 NA,它们存在于两个数据表中。 DT2 中没有重复的行。 DT1 有 35M 的观测值,可能问题与此有关。
有什么想法吗? 谢谢!
编辑: 这是一个例子。
> DT1
Tienda Codigo
1: Abasto 1
2: Abasto 1
3: Abasto 3
4: Zurich 3
5: Zurich 3
6: Zurich 7
> DT2
Tienda Codigo SemanaIntro
1: Abasto 1 1
2: Abasto 2 1
3: Abasto 3 1
4: Zurich 3 2
5: Zurich 5 3
6: Zurich 6 3
> DT3
Tienda Codigo SemanaIntro
1: Abasto 1 1
2: Abasto 1 1
3: Abasto 3 1
4: Zurich 3 2
5: Zurich 3 2
6: Zurich 7 NA
【问题讨论】: