R 带编码的内部连接

R 带编码的内部连接,r,dplyr,encoding,R,Dplyr,Encoding,我有两张桌子。我的意图是使他们之间的内在联系 库(dplyr) 表1这将为您提供所需的结果: library(reshape2) dcast_Table2 <- dcast(Table2,formula = ID ~Store,fill = "") dcast_Table2[-1][dcast_Table2[-1] != ""] <- 1 INNER_JOIN_TABLE<-inner_join(Table1,dcast_Table2

我有两张桌子。我的意图是使他们之间的内在联系

库(dplyr)

表1这将为您提供所需的结果:

library(reshape2)
dcast_Table2 <- dcast(Table2,formula = ID ~Store,fill = "")
dcast_Table2[-1][dcast_Table2[-1] != ""] <- 1

INNER_JOIN_TABLE<-inner_join(Table1,dcast_Table2,by = c("ID"="ID"))
INNER_JOIN_TABLE
> INNER_JOIN_TABLE
# A tibble: 5 x 11
     ID Sales `1`   `2`   `3`   `4`   `5`   `6`   `10`  `15`  `20` 
  <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1     1   100 "1"   "1"   ""    ""    ""    ""    ""    ""    ""   
2     2   200 ""    ""    "1"   ""    ""    ""    ""    ""    ""   
3     3   300 ""    ""    ""    "1"   "1"   "1"   ""    ""    ""   
4     4   400 ""    ""    ""    "1"   ""    ""    ""    ""    ""   
5     5   500 ""    ""    ""    ""    ""    ""    "1"   "1"   "1" 
library(reshape2)
dcast_Table2 <- dcast(Table2,formula = ID ~Store,fill = "")
dcast_Table2[-1][dcast_Table2[-1] != ""] <- 1
dcast_Table2[-1][dcast_Table2[-1] == ""] <- 0

INNER_JOIN_TABLE<-inner_join(Table1,dcast_Table2,by = c("ID"="ID"))
INNER_JOIN_TABLE
> INNER_JOIN_TABLE
# A tibble: 5 x 11
     ID Sales `1`   `2`   `3`   `4`   `5`   `6`   `10`  `15`  `20` 
  <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1     1   100 1     1     0     0     0     0     0     0     0    
2     2   200 0     0     1     0     0     0     0     0     0    
3     3   300 0     0     0     1     1     1     0     0     0    
4     4   400 0     0     0     1     0     0     0     0     0    
5     5   500 0     0     0     0     0     0     1     1     1    
> as.data.frame(INNER_JOIN_TABLE)
  ID Sales 1 2 3 4 5 6 10 15 20
1  1   100 1 1 0 0 0 0  0  0  0
2  2   200 0 0 1 0 0 0  0  0  0
3  3   300 0 0 0 1 1 1  0  0  0
4  4   400 0 0 0 1 0 0  0  0  0
5  5   500 0 0 0 0 0 0  1  1  1
输出:

library(reshape2)
dcast_Table2 <- dcast(Table2,formula = ID ~Store,fill = "")
dcast_Table2[-1][dcast_Table2[-1] != ""] <- 1

INNER_JOIN_TABLE<-inner_join(Table1,dcast_Table2,by = c("ID"="ID"))
INNER_JOIN_TABLE
> INNER_JOIN_TABLE
# A tibble: 5 x 11
     ID Sales `1`   `2`   `3`   `4`   `5`   `6`   `10`  `15`  `20` 
  <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1     1   100 "1"   "1"   ""    ""    ""    ""    ""    ""    ""   
2     2   200 ""    ""    "1"   ""    ""    ""    ""    ""    ""   
3     3   300 ""    ""    ""    "1"   "1"   "1"   ""    ""    ""   
4     4   400 ""    ""    ""    "1"   ""    ""    ""    ""    ""   
5     5   500 ""    ""    ""    ""    ""    ""    "1"   "1"   "1" 
library(reshape2)
dcast_Table2 <- dcast(Table2,formula = ID ~Store,fill = "")
dcast_Table2[-1][dcast_Table2[-1] != ""] <- 1
dcast_Table2[-1][dcast_Table2[-1] == ""] <- 0

INNER_JOIN_TABLE<-inner_join(Table1,dcast_Table2,by = c("ID"="ID"))
INNER_JOIN_TABLE
> INNER_JOIN_TABLE
# A tibble: 5 x 11
     ID Sales `1`   `2`   `3`   `4`   `5`   `6`   `10`  `15`  `20` 
  <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1     1   100 1     1     0     0     0     0     0     0     0    
2     2   200 0     0     1     0     0     0     0     0     0    
3     3   300 0     0     0     1     1     1     0     0     0    
4     4   400 0     0     0     1     0     0     0     0     0    
5     5   500 0     0     0     0     0     0     1     1     1    
> as.data.frame(INNER_JOIN_TABLE)
  ID Sales 1 2 3 4 5 6 10 15 20
1  1   100 1 1 0 0 0 0  0  0  0
2  2   200 0 0 1 0 0 0  0  0  0
3  3   300 0 0 0 1 1 1  0  0  0
4  4   400 0 0 0 1 0 0  0  0  0
5  5   500 0 0 0 0 0 0  1  1  1

杰出的剩下的只有一件事,如果可以删除引号并将空引号替换为零耶,我会让editsTibble根据其数据类型打印值,这样您就可以将TIBLE转换为数据帧以删除输出中的引号。谢谢!我会做的