【发布时间】:2021-04-22 15:01:02
【问题描述】:
鉴于下面的数据框df1,我想将其转换为数据框df2。理想情况下,目标是将每个 ID 的多行合并为每个 ID 的一行。如果解决方案可以在 dplyr、tidyverse 等中实现,那就太好了!!
df1 <- data.frame (ID = c("1", "1", "1", "1", "1", "1", "2", "2",
"2", "2", "2", "2", "3", "3", "3", "3", "3",
"4", "4"),
fruit_name = c("Apple", "Banana", "Cherry",
"Orange", "Blueberry", "Peach",
"Apple", "Banana", "Cherry",
"Orange", "Blueberry", "Peach",
"Apple", "Banana", "Cherry",
"Orange", "Blueberry",
"Apple", "Cherry"),
count_one = c("2", "2", "2",
"2", "2", "2",
"4", "4", "4",
"4", "4", "4",
"3", "3", "3",
"3", "3",
"5", "5"),
count_two = c("1", "NA", "NA",
"NA", "NA", "NA",
"NA", "NA", "4",
"NA", "NA", "NA",
"NA", "NA", "NA",
"NA", "3",
"5", "NA"))
进入...
df2 <- data.frame (ID = c("1", "2", "3", "4"),
count_one = c("2", "4", "3", "5"),
count_two = c("1", "4", "3", "5"))
谢谢你,非常感谢!
【问题讨论】:
-
您是否希望聚合 ID 并返回最大 count_one、最大 count_two? fruit_name 对问题没有影响?
-
顺便问一下逻辑是什么?第一个值/最后一个值??
-
所以对于
count_one,只有ID的唯一编号,对于count_two,只有ID的非空值 -
是的正确,
fruit_name对问题没有影响