Combining pivoted rows in R by common value

后端 未结 4 1644
天涯浪人
天涯浪人 2020-12-04 03:17

I have a data frame that looks like this

Name    Visit     Arrival      Departure

Jack    week 1     8:00         NA
Jack    week 1      NA          8:30
Sa         


        
4条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-04 03:34

    Actually, if you are able to get back to the data before the pivot, tidyr::spread will do a beautiful job.

    Name <- c("Jack", "Jack","Sally", "Sally", "Adam", "Adam")
    Visit <- c("week1", "week1", "week5", "week5", "week2", "week2")
    Itenary <- rep(c("Arrival", "Departure"), 3)
    Time <- c("8:00", "8:30", "9:00", "9:30", "2:00", "2:30")
    
    df <- data.frame(Name, Visit, Itenary, Time)
    
    df
    
       Name Visit   Itenary Time
    1  Jack week1   Arrival 8:00
    2  Jack week1 Departure 8:30
    3 Sally week5   Arrival 9:00
    4 Sally week5 Departure 9:30
    5  Adam week2   Arrival 2:00
    6  Adam week2 Departure 2:30
    
    df %>% 
      spread(key = Itenary, value = Time)
    
       Name Visit Arrival Departure
    1  Adam week2    2:00      2:30
    2  Jack week1    8:00      8:30
    3 Sally week5    9:00      9:30
    

提交回复
热议问题