我正在尝试将具有字符格式的时间增量的列分开。
大多数观测的格式是MM:SS,但也有一些是HH:MM:SS格式。我正在尝试根据":"分成列,以便我可以将时间减少到几秒钟以执行一些基本分析。
我想得到这个:
Time
1 11:15
2 12:36
3 1:15:17
进入这个:
Hour Minuet Second
1 NA 11 15
2 NA 12 36
3 1 15 17
我试过了
separate(df, time, into = c("Hours", "Minuets", "Seconds"), by = ":")
其中返回:
Hour Minuet Second
1 11 15 NA
2 12 36 NA
3 1 15 17
这应该有效
library(dplyr)
library(tidyr)
df %>%
separate(time, c("Hour", "Minute", "Second"), sep = ":", fill = "left")
# -------------------------------------------------------------------------
# Hour Minute Second
# 1 <NA> 11 15
# 2 <NA> 12 36
# 3 1 15 17
数据
#dput(df)
df <- structure(list(time = c("11:15", "12:36", "1:15:17")), class = "data.frame", row.names = c(NA,
-3L))
?separate
填充 如果 sep 是字符向量,则控制当没有足够的片段时会发生什么。 有三个有效选项:
>"warn" (the default): emit a warning and fill from the right
>"right": fill with missing values on the right
>"left": fill with missing values on the left