Чтобы дублировать таблицу со значениями EY
, которых нет в таблице 1, я предлагаю присоединиться к таблице 2 только по столбцам K6
и SL
, а не по столбцу EY
.
table_1 <- data.frame(K6=rep("Aero",4), K7=c("Gen","Arp","Pro","Lgt"), SL=rep("Asia",4), EY=rep("Asia",4), Val.1=c(1,2,8,6), stringsAsFactors = FALSE)
table_2 <- data.frame(K6=rep("Aero",2), SL=rep("Asia",2), EY=c("Asia","US"), Val.2=c(15,20), stringsAsFactors = FALSE)
library(dplyr)
table_3 <- left_join(table_2, table_1, by=c("K6","SL"))
K6 SL EY.x Val.2 K7 EY.y Val.1
1 Aero Asia Asia 15 Gen Asia 1
2 Aero Asia Asia 15 Arp Asia 2
3 Aero Asia Asia 15 Pro Asia 8
4 Aero Asia Asia 15 Lgt Asia 6
5 Aero Asia US 20 Gen Asia 1
6 Aero Asia US 20 Arp Asia 2
7 Aero Asia US 20 Pro Asia 8
8 Aero Asia US 20 Lgt Asia 6
Тогда для всех строк, где EY.x
не совпадает EY.y
, установите Val.1
в 0.
table_3 <- table_3 %>%
mutate(Val.1 = ifelse(EY.x==EY.y, Val.1, 0)) %>%
select(-EY.y, EY=EY.x)
K6 SL EY Val.2 K7 Val.1
1 Aero Asia Asia 15 Gen 1
2 Aero Asia Asia 15 Arp 2
3 Aero Asia Asia 15 Pro 8
4 Aero Asia Asia 15 Lgt 6
5 Aero Asia US 20 Gen 0
6 Aero Asia US 20 Arp 0
7 Aero Asia US 20 Pro 0
8 Aero Asia US 20 Lgt 0