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转换为数据帧以删除输出中的引号。谢谢!我会做的