gpt4 book ai didi

r - 按公共(public)值组合 R 中的透视行

转载 作者:行者123 更新时间:2023-12-02 08:15:17 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据框

Name    Visit     Arrival      Departure

Jack week 1 8:00 NA
Jack week 1 NA 8:30
Sally week 5 9:00 NA
Sally week 5 NA 9:30
Adam week 2 2:00 NA
Adam week 2 NA 3:00

到达时间和出发时间最初是行,我转向了列,这就是为什么有空值的原因。我想根据 name 和 visit 合并行,这样到达和离开就在同一行中,就像

Name    Visit     Arrival      Departure

Jack week 1 8:00 8:30
Sally week 5 9:00 9:30
Adam week 2 2:00 3:00

任何解决方案将不胜感激,但很难尝试合并到那里。

最佳答案

只需使用 na.omit 作为聚合函数对其进行聚合即可:

aggregate(dat[c("Arrival","Departure")], dat[c("Name","Visit")], FUN=na.omit)
# or
aggregate(cbind(Arrival,Departure) ~ ., data=dat, FUN=na.omit, na.action=na.pass)
# Name Visit Arrival Departure
#1 Jack week1 8:00 8:30
#2 Adam week2 2:00 3:00
#3 Sally week5 9:00 9:30

data.table 中的逻辑相同:

dat[, lapply(.SD,na.omit), by=.(Name,Visit)]

...或dplyr:

dat %>% group_by(Name,Visit) %>% summarise_all(na.omit)

关于r - 按公共(public)值组合 R 中的透视行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42567075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com