Я понимаю, что здесь есть альтернативные способы получить результат, но я пытаюсь понять, почему использование rbind в следующем коде приводит к списку, а не к фрейму данных, несмотря на ввод двух явно идентичных фреймов данных,Предположительно это относится к объекту фрейма данных, возвращаемому dplyr после операции group_by, но как это можно исправить?
Цель состоит в том, чтобы удалить дубликаты (в столбцах EventValue1 и EventValue2), где EventCode = X, но сохранить дубликаты для EventCode = Y.
df <- data.frame(EventID = c("1", "2", "3", "4", "5", "6", "7", "8", "9"),
EventValue1 = c("A", "A", "B", "C", "D", "E", "E", "F", "F"),
EventValue2 = c("AA", "AA", "BB", "CC", "DD", "EE", "FF", "FF", "FF"),
EventCode = c("X", "X", "X", "X", "X", "X", "X", "Y", "Y"))
# split df by event code
df.x <- subset(df, EventCode == "X")
df.y <- subset(df, EventCode == "Y")
# remove duplicates in df.x by EventValue1 and EventValue2
df.x.2 <- df.x %>%
group_by(EventValue1, EventValue2) %>%
slice(which.min(EventID))
# recombine dfs
df <- rbind(df.x.2, df.y) # this returns a list, should be a data frame
# desired outcome
# EventID EventValue1 EventValue2 EventCode
# 1 A AA X
# 3 B AA X
# 4 C AA X
# 5 D AA X
# 6 E AA X
# 7 E AA X
# 8 F FF Y
# 9 F FF Y