在 R 中格式化分钟和秒数据

问题描述 投票:0回答:2

我正在对 NBA 球员进行分析,并且在“上场分钟数”数据集上遇到了麻烦。数据位于 .csv 文件中,但我已将其作为数据框和小标题读入。该列包含特定玩家玩该游戏的分钟和秒数,但给出了多种格式(见图)。我一直试图让 R 将列识别为分钟和秒(如果重要的话,实际上只需要分钟),但没有成功,因此我可以执行一些过滤(即仅保留至少玩了 24 分钟的玩家)。

我尝试过 POSIX 函数的各种变体,并在网上搜索帮助,但没有成功。

players$MIN <- as.POSIXct(players$MIN, "%H:%M:%S")
players$MIN<-format(.POSIXct(dt,tz="GMT"), "%H:%M:%S")

如果我能得到任何帮助,我将不胜感激 - 谢谢

Raw Data Format

r dataframe formatting
2个回答
0
投票

给出一些例子,例如:

df <- data.frame(MIN = c("36:22:00", "23:54", "0:25"))

您可以在

:
处分成几列,如下所示:

tidyr::separate(df, MIN, c("M", "S", "frac"), sep = ":", convert = TRUE)
#   M  S frac
#1 36 22    0
#2 23 54   NA
#3  0 25   NA

或获取小数分钟:

library(dplyr)
tidyr::separate(df, MIN, c("M", "S", "frac"), sep = ":", convert = TRUE) %>%
  mutate(M_frac = M + S/60)

#   M  S frac     M_frac
#1 36 22    0 36.3666667
#2 23 54   NA 23.9000000
#3  0 25   NA  0.4166667

0
投票

可能已经过去一年七个月了,但今天你真的救了一个人。

谢谢您的分享。

© www.soinside.com 2019 - 2024. All rights reserved.