Упражнение 1 Импорт данных

Напишите код, чтобы прочитать файл

read_delim("data/ambulance.csv", delim = "|")
## Parsed with column specification:
## cols(
##   date = col_character(),
##   num_rides = col_integer(),
##   num_childrides = col_character(),
##   text = col_character()
## )
## # A tibble: 2,943 x 4
##    date       num_rides num_childrides text                               
##    <chr>          <int> <chr>          <chr>                              
##  1 26.07.201~      7670 742            "7670 \u0438\u0437 \u043d\u0438\u0~
##  2 25.07.201~      8016 769            "8016 \u0438\u0437 \u043d\u0438\u0~
##  3 24.07.201~      8209 777            "8209 \u0438\u0437 \u043d\u0438\u0~
##  4 23.07.201~      8461 750            "8461 \u0438\u0437 \u043d\u0438\u0~
##  5 22.07.201~      7328 706            "7328 \u0438\u0437 \u043d\u0438\u0~
##  6 21.07.201~      7393 716            "7393 \u0438\u0437 \u043d\u0438\u0~
##  7 20.07.201~      7644 770            "7644 \u0438\u0437 \u043d\u0438\u0~
##  8 19.07.201~      8175 812            "8175 \u0438\u0437 \u043d\u0438\u0~
##  9 18.07.201~      8094 745            "8094 \u0438\u0437 \u043d\u0438\u0~
## 10 17.07.201~      7952 756            "7952 \u0438\u0437 \u043d\u0438\u0~
## # ... with 2,933 more rows

Упражнение 1.2

Иногда строки в CSV-файле содержат запятые. Чтобы они не вызывали проблем, их нужно заключать в кавычки, как " или '. Обычно read_csv() считает, что кавычки выглядят так ", и если вы хотите поменять их, то нужно использовать read_delim(). Напишите код, чтобы прочитать следующий текст (“x,y1,‘a,b’”) как датафрейм.

read_delim("x,y\n1,'a,b'", delim = ",", quote = "'")

Упражнение 1.3

Определите, что не так с каждым из следующих CSV-файлов. (read_csv(“a,b1,2,34,5,6”) Как можно исправить код?

read_csv("a,b\n1,2,3\n4,5,6", col_names = c("1", "2", "3"),skip = 1 )

(read_csv(“a,b,c1,21,2,3,4”)

read_csv("a,b,c\n1,2\n1,2,3,4", col_names = c("a", "b", "c", "d") , skip = 1)
## Warning in rbind(names(probs), probs_f): number of columns of result is not
## a multiple of vector length (arg 2)
## Warning: 1 parsing failure.
## row # A tibble: 1 x 5 col     row col   expected  actual    file         expected   <int> <chr> <chr>     <chr>     <chr>        actual 1     1 <NA>  4 columns 2 columns literal data file # A tibble: 1 x 5
## # A tibble: 2 x 4
##       a     b     c     d
##   <int> <int> <int> <int>
## 1     1     2    NA    NA
## 2     1     2     3     4

(read_csv(“a,b"1”))

read_delim("a,b\n\"1", delim = "|", quote = " ")
## # A tibble: 1 x 1
##   `a,b`
##   <chr>
## 1 "\"1"

(read_csv(“a,b1,2,b”))

read_csv("a,b\n1,2\na,b", col_names = c("a","b"), comment = "a")
## # A tibble: 1 x 2
##       a     b
##   <int> <int>
## 1     1     2

(read_csv(“a;b1;3”)

read_csv2("a;b\n1;3")
## Using ',' as decimal and '.' as grouping mark. Use read_delim() for more control.
## # A tibble: 1 x 2
##       a     b
##   <int> <int>
## 1     1     3

Упражнение 2. Преобразование типов

Напишите код, чтобы привести к нужному типу следующие даты и время:

d1 <- "January 1, 2010"
parse_date(d1, "%B %d, %Y")
## [1] "2010-01-01"
d2 <- "2015-Mar-07"
parse_date(d2, "%Y-%b-%d")
## [1] "2015-03-07"
d3 <- "06-Jun-2017"
parse_date(d3, "%d-%b-%Y")
## [1] "2017-06-06"
d4 <-  c("August 19 (2015)", "July 1 (2015)")
parse_date(d4,"%B %d (%Y)")
## [1] "2015-08-19" "2015-07-01"
#mdy(d4)

d5 <- "12/30/14"
parse_date(d5, "%m/%d/%y")
## [1] "2014-12-30"
t1 <- "1705"
parse_time(t1, "%H%M")
## 17:05:00
t2 <- "11:15:10.12 PM"
parse_time(t2, "%I:%M:%OS %p")
## 23:15:10.12