我有一个类似于以下格式的数据框,尽管orderID后面还有更多的组,需要保持相同:
orderID <- c('1234', '1234')
incoming <- as.Date(c('2019-3-3',NA))
outgoing <- as.Date(c(NA,'2019-3-25'))
df <- data.frame(orderID, incoming, outgoing)
df
orderID incoming outgoing
1 1234 2019-03-03 <NA>
2 1234 <NA> 2019-03-25
我正在尝试将每个组的行合并到下面:
df_expected
orderID incoming outgoing
1 1234 2019-03-03 2019-03-25
我尝试使用下面的dplyr代码,但未如预期的那样工作-我得到了NA。希望能提供一些帮助,并感谢您的帮助。
#code that didn't work
df %>% group_by(orderID) %>%
summarise(incoming=min(incoming), outgoing = min(outgoing))
答案 0 :(得分:0)
它应该可以完成工作,但是您缺少na.rm = TRUE
函数的min
选项来使其正常工作(因为如果您不这样做,则会将NA
的值视为最小值)忽略它)。因此,这应该可行:
df %>%
group_by(orderID) %>%
summarise(incoming = min(incoming, na.rm = TRUE),
outgoing = min(outgoing, na.rm = TRUE)
)
输出:
# A tibble: 1 x 3
# orderID incoming outgoing
# <fct> <date> <date>
#1 1234 2019-03-03 2019-03-25
希望有帮助。