R:将每小时数据透视到列

R:将每小时数据透视到列,r,pivot,R,Pivot,我对r非常陌生,我正在尝试操纵公交车时刻表数据。我想在所附图片后显示时间 我设法从1开始。到2。但我现在正努力达到3 以下是我目前的代码: #1 timetable <- as.data.frame(c("11:34","11:46","12:12","13:16","14:45","15:54","16:22")) colnames(timetabl

我对r非常陌生,我正在尝试操纵公交车时刻表数据。我想在所附图片后显示时间

我设法从1开始。到2。但我现在正努力达到3

以下是我目前的代码:

#1
timetable <- as.data.frame(c("11:34","11:46","12:12","13:16","14:45","15:54","16:22"))
colnames(timetable) <- 'time'

#2
library(stringr)
new.timetable <- str_split_fixed(timetable$time,":",2) %>% as.data.frame()
colnames(new.timetable) <- c('Hours', 'Minutes')

#3 ??
#1

时间表这符合你的目的吗

#I have added one value to your timetable object
timetable <- as.data.frame(c("11:34","11:46","12:12","13:16","14:45","15:54","16:22", "11:47")) # added one value

library(tidyverse)
#3.
new.timetable %>% 
  group_by(Hours) %>% 
  mutate(id = row_number())%>%
  ungroup() %>%
  pivot_wider(id_cols=id, names_from = Hours, values_from = Minutes, values_fn = list) %>% 
  select(-id) %>%
  unnest(1:6)

# A tibble: 3 x 6
  `11`  `12`  `13`  `14`  `15`  `16` 
  <chr> <chr> <chr> <chr> <chr> <chr>
1 34    12    16    45    54    22   
2 46    NA    NA    NA    NA    NA   
3 47    NA    NA    NA    NA    NA 

#我为您的时间表对象添加了一个值
时间表%
分组单位(小时)%>%
变异(id=行号())%>%
解组()%>%
透视图(id\u cols=id,name\u from=Hours,values\u from=Minutes,values\u fn=list)%>%
选择(-id)%%>%
最新(1:6)
#一个tibble:3x6
`11`  `12`  `13`  `14`  `15`  `16` 
1 34    12    16    45    54    22   
2 46纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳
347不,不,不,不

这是否符合您的目的

#I have added one value to your timetable object
timetable <- as.data.frame(c("11:34","11:46","12:12","13:16","14:45","15:54","16:22", "11:47")) # added one value

library(tidyverse)
#3.
new.timetable %>% 
  group_by(Hours) %>% 
  mutate(id = row_number())%>%
  ungroup() %>%
  pivot_wider(id_cols=id, names_from = Hours, values_from = Minutes, values_fn = list) %>% 
  select(-id) %>%
  unnest(1:6)

# A tibble: 3 x 6
  `11`  `12`  `13`  `14`  `15`  `16` 
  <chr> <chr> <chr> <chr> <chr> <chr>
1 34    12    16    45    54    22   
2 46    NA    NA    NA    NA    NA   
3 47    NA    NA    NA    NA    NA 

#我为您的时间表对象添加了一个值
时间表%
分组单位(小时)%>%
变异(id=行号())%>%
解组()%>%
透视图(id\u cols=id,name\u from=Hours,values\u from=Minutes,values\u fn=list)%>%
选择(-id)%%>%
最新(1:6)
#一个tibble:3x6
`11`  `12`  `13`  `14`  `15`  `16` 
1 34    12    16    45    54    22   
2 46纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳
347不,不,不,不