Вот способ с dplyr
и tidyr
-
library(dplyr)
library(tidyr)
df1 <- data.frame(Id = 1:4)
df2 <- data.frame(Id = c(1,1,2,3,3), Name = c("A", "B", "B", "C", "A"),
stringsAsFactors = F)
df2 %>%
mutate(value = 1) %>%
spread(Name, value, fill = 0) %>%
inner_join(df1, by = "Id")
Id A B C
1 1 1 1 0
2 2 0 1 0
3 3 1 0 1