我正在对 NBA 球员进行分析,并且在“上场分钟数”数据集上遇到了麻烦。数据位于 .csv 文件中,但我已将其作为数据框和小标题读入。该列包含特定玩家玩该游戏的分钟和秒数,但给出了多种格式(见图)。我一直试图让 R 将列识别为分钟和秒(如果重要的话,实际上只需要分钟),但没有成功,因此我可以执行一些过滤(即仅保留至少玩了 24 分钟的玩家)。
我尝试过 POSIX 函数的各种变体,并在网上搜索帮助,但没有成功。
players$MIN <- as.POSIXct(players$MIN, "%H:%M:%S")
players$MIN<-format(.POSIXct(dt,tz="GMT"), "%H:%M:%S")
如果我能得到任何帮助,我将不胜感激 - 谢谢
给出一些例子,例如:
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
可能已经过去一年七个月了,但今天你真的救了一个人。
谢谢您的分享。