我有三个数据帧
d1=data.frame(Modelo = sample(c("ModeloA","ModeloB","ModeloC","ModeloD"), 20, replace=TRUE),
Color = sample(c("ColorA","ColorB","ColorC"), 20, replace=TRUE),
Id=1:20)
d2=data.frame(Modelo = sample(c("ModeloD","ModeloB","ModeloE","ModeloD"), 30, replace=TRUE),
Color = sample(c("ColorA","ColorF","ColorC"), 30, replace=TRUE),
Id=1:30)
d3=data.frame(Modelo = sample(c("ModeloA","ModeloB","ModeloD"), 20, replace=TRUE),
Color = sample(c("ColorA","ColorA","ColorC","ColorD"), 20, replace=TRUE),
Id=1:20)我把它们统一在一个数据框架中
col<-c("Modelo", "Color")
d1 %>% inner_join(d2,by=col, suffix=c(".d1", ".d2"))-> d1_2
d1_2 %>% inner_join(d3,by=col) -> d12_3
d12_3 <-rename(d12_3, c("Id.d3"="Id"))我想将d12_3概述如下
Modelo Color Id.d1 Id.d2 Id.d3
ModeloB ColorA 18 10 9,16 ,17,19
ModeloB ColorC 3,15,20 7,8,17,22 11
ModeloD ColorA 12 11,24,28 1,6,12,13有可能吗?
发布于 2021-02-14 17:06:54
正如注释所述,如果您生成一个随机数据集,最好添加一个set.seed,否则很难生成相同的结果。
也不清楚你想把什么存档在你对我的总结中,我觉得它是独一无二的价值吗?遵循cols、Modelo和Color的代码组,并将唯一值提取到列表或字符串中。
# List
result <- d12_3 %>%
group_by(Modelo, Color) %>%
summarise(
Id.d1 = list(unique(Id.d1)),
Id.d2 = list(unique(Id.d2)),
Id.d3 = list(unique(Id.d3))
)
# String
result <- d12_3 %>%
group_by(Modelo, Color) %>%
summarise(
Id.d1 = str_c(unique(Id.d1), sep = ","),
Id.d2 = str_c(unique(Id.d2), sep = ","),
Id.d3 = str_c(unique(Id.d3), sep = ",")
)干杯汉尼斯
https://stackoverflow.com/questions/66195342
复制相似问题