尝试合并R中的两个数据帧: 一个看起来像:
Id
1
2
3
4
另一个看起来像:
Id Name
1 A
1 B
2 B
3 C
3 A
预期结果:
ID A B C
1 1 1 0
2 0 1 0
3 1 0 1
我不知道如何以这种方式合并数据框。有什么想法吗?
答案 0 :(得分:1)
这里是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