我有一个类似于下面的格式的dataframe,尽管在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代码,但是它并没有像预期的那样工作-我得到的是NAs。希望能提供一些帮助。
#code that didn't work
df %>% group_by(orderID) %>%
summarise(incoming=min(incoming), outgoing = min(outgoing))发布于 2019-04-24 23:49:57
它应该完成这项工作,但是您缺少了na.rm = TRUE函数的min选项来使其工作(因为如果您不忽略NA值,那么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希望能帮上忙。
https://stackoverflow.com/questions/55839864
复制相似问题