У меня есть следующий фрейм данных R:
zed
# A tibble: 10 x 3
jersey_number first_name statistics.minutes
<chr> <chr> <chr>
1 20 Marques 8:20
2 53 Brennan 00:00
3 35 Marvin 40:00
4 50 Justin 00:00
5 14 Jordan 00:00
6 1 Trevon 31:00
7 15 Alex 2:00
8 51 Mike 00:00
9 12 Javin 17:00
10 3 Grayson 38:00
> dput(zed)
structure(list(jersey_number = c("20", "53", "35", "50", "14",
"1", "15", "51", "12", "3"), first_name = c("Marques", "Brennan",
"Marvin", "Justin", "Jordan", "Trevon", "Alex", "Mike", "Javin",
"Grayson"), statistics.minutes = c("8:20", "00:00", "40:00",
"00:00", "00:00", "31:00", "2:00", "00:00", "17:00", "38:00")), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
Это формат данных из API, от которого я его получаю.Все столбцы (есть ~ 100 столбцов) изначально относятся к классу character
.Чтобы преобразовать все, я использую readr::type_convert()
, но возникает следующая ошибка:
> zed %>% readr::type_convert()
Parsed with column specification:
cols(
jersey_number = col_integer(),
first_name = col_character(),
statistics.minutes = col_time(format = "")
)
# A tibble: 10 x 3
jersey_number first_name statistics.minutes
<int> <chr> <time>
1 20 Marques 08:20
2 53 Brennan 00:00
3 35 Marvin NA
4 50 Justin 00:00
5 14 Jordan 00:00
6 1 Trevon NA
7 15 Alex 02:00
8 51 Mike 00:00
9 12 Javin 17:00
10 3 Grayson NA
Вместо того, чтобы выдавать ошибки и портить преобразование, я хотел бы, чтобы этот столбец минут вместо этого превратился в класс == числовой,Если строка показывает «8:20» для этого столбца, я бы хотел, чтобы это было просто преобразовано в 8,33.
Любые мысли о том, как я могу это сделать - предпочтительно то, что позволяет мне продолжать использовать type_convert
.