I have a dataframe that I want to pivot_wide based on matching values in record_id and LOC.So record_id 1 has Loc = LUC for both rows. So I want to merge information from both rows such that only 1 row exists for each record_id and Loc combination
df <- read.table(text =
" record_id found order delivered Loc coord A B C D E F G
1 1 1/1/18 1/2/18 LUC A:123 A A1 TR1 1 1 A BC1
1 1 1/1/18 1/3/18 LUC B:124 B A2 TR2 1 1 B BC2
2 1 1/1/18 1/4/18 AMZ C:125 C A3 TR3 2 2 C BC3
3 NA 1/1/18 1/5/18 FR A:126 A A4 TR4 3 3 A BC4
4 NA 1/1/18 1/6/18 FR B:127 B A5 TR5 4 4 B BC5
5 1 1/1/18 1/7/18 LUC A:128 A A6 TR6 5 5 A BC6
5 1 1/1/18 1/8/18 FR A:129 A A7 TR7 5 5 A BC7", header = TRUE)
Desired output
record_id found order delivered Loc coord A B C D E F G coord_2 A_2 B_2 C_2 D_2 E_2 F_2 G_2
1 1 1/1/18 1/2/18 LUC A:123 A A1 TR1 1 1 A BC1 B:124 B A2 TR2 1 1 B BC2
2 1 1/1/18 1/4/18 AMZ C:125 C A3 TR3 2 2 C BC3 NA NA NA NA NA NA NA NA
3 NA 1/1/18 1/5/18 FR A:126 A A4 TR4 3 3 A BC4 NA NA NA NA NA NA NA NA
4 NA 1/1/18 1/6/18 FR B:127 B A5 TR5 4 4 B BC5 NA NA NA NA NA NA NA NA
5 1 1/1/18 1/7/18 LUC A:128 A A6 TR6 5 5 A BC6 NA NA NA NA NA NA NA NA
5 1 1/1/18 1/8/18 FR A:129 A A7 TR7 5 5 A BC7 NA NA NA NA NA NA NA NA
This is what I tried but this doesn't work
df %>%
group_by(record_id, Loc) %>%
pivot_wider(names_from = c(record_id, Loc),
values_from = c(coord:G))