Traditional data.frame
my.data <- data.frame(
x1 = c(12,34,45),
x2 = c("M","F", "F")
)
my.data
class(my.data)
The new data_frame tibble
my_data <- data_frame(
x1 = c(12,34,45),
x2 = c("M","F", "F")
)
my_data
class(my_data)
mtcars
class(mtcars)
mtcars <- as.tibble(mtcars)
mtcars
tribble
my_data <- tribble(
~x1, ~x2,
12, "M",
34, "F",
45, "F"
)
my_data
class(my_data)
Access rows and columns
my_data
# columns
my_data[1]
my_data[[1]]
my_data$x1
my_data$x2
# rows
my_data[1,]
my_data[2,]
my_data[3,]
Read comma separated value data
my_data2 <- read_csv(
"x1, x2
12, M
34, F
45, F"
)
my_data2
Parsing
x <- c("TRUE", "FALSE", "FALSE")
str(x)
class(x)
x <- parse_logical(x)
str(x)
class(x)
x <- c(23,34,45)
str(x)
class(x)
x <- parse_integer(x)
str(x)
class(x)
x <- c("2018-10-06", "2018-10-07", "2018-10-08")
str(x)
class(x)
x <- parse_date(x)
str(x)
class(x)
problems(x)
x <- parse_number(x)
str(x)
class(x)
x <- parse_double(x)
str(x)
class(x)
Strings, ASCII code
charToRaw("Prof. Suess")
Dates
parse_date("2018-10-08")
library(hms)
parse_time("06:30 pm")
parse_date("10/08/18", "%m/%d/%y")
Parsing a file
This is a useful section to read over. It is about read an external .csv file into R.
challenge <- read_csv(readr_example("challenge.csv"))
problems(challenge)
challenge <- read_csv(
readr_example("challenge.csv"),
col_types = cols(
x = col_integer(),
y = col_character()
)
)
challenge <- read_csv(
readr_example("challenge.csv"),
col_types = cols(
x = col_double(),
y = col_character()
)
)
head(challenge)
tail(challenge)
challenge <- read_csv(
readr_example("challenge.csv"),
col_types = cols(
x = col_double(),
y = col_date()
)
)
head(challenge)
tail(challenge)
Writing a csv
Write it, go find it, open it in MS Excel.
write_csv(challenge, "challenge.csv")
Write an .rds file. This is an R dataset file.
write_rds(challenge, "challenge.rds")
read_rds("challenge.rds")
LS0tCnRpdGxlOiAiVGliYmxlcyBhbmQgVGlkeSBEYXRhIgphdXRob3I6ICJQcm9mLiBFcmljIEEuIFN1ZXNzIgpvdXRwdXQ6CiAgd29yZF9kb2N1bWVudDogZGVmYXVsdAogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKLS0tCgpUb2RheSB3ZSB3aWxsIHRha2UgYSBsb29rIGF0IHRpYmJsZXMsIHRyaWJibGVzLCBhbmQgaW1wb3J0aW5nIGRhdGEKCmBgYHtyIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCiMjIFRyYWRpdGlvbmFsIGRhdGEuZnJhbWUKCmBgYHtyfQpteS5kYXRhIDwtIGRhdGEuZnJhbWUoCiAgeDEgPSBjKDEyLDM0LDQ1KSwKICB4MiA9IGMoIk0iLCJGIiwgIkYiKQopCm15LmRhdGEKY2xhc3MobXkuZGF0YSkKYGBgCgojIFRoZSBuZXcgZGF0YV9mcmFtZSB0aWJibGUKCmBgYHtyfQpteV9kYXRhIDwtIGRhdGFfZnJhbWUoCiAgeDEgPSBjKDEyLDM0LDQ1KSwKICB4MiA9IGMoIk0iLCJGIiwgIkYiKQopCm15X2RhdGEKY2xhc3MobXlfZGF0YSkKYGBgCgoKYGBge3J9Cm10Y2FycwpjbGFzcyhtdGNhcnMpCgptdGNhcnMgPC0gYXMudGliYmxlKG10Y2FycykKbXRjYXJzCgoKCmBgYAoKIyMgdHJpYmJsZQoKYGBge3J9Cm15X2RhdGEgPC0gdHJpYmJsZSgKICB+eDEsICB+eDIsCiAgMTIsICAgIk0iLAogIDM0LCAgICJGIiwKICA0NSwgICAiRiIKKQpteV9kYXRhCmNsYXNzKG15X2RhdGEpCmBgYAoKIyMgQWNjZXNzIHJvd3MgYW5kIGNvbHVtbnMKCmBgYHtyfQpteV9kYXRhCgojIGNvbHVtbnMKCm15X2RhdGFbMV0KbXlfZGF0YVtbMV1dCgpteV9kYXRhJHgxCm15X2RhdGEkeDIKCiMgcm93cwoKbXlfZGF0YVsxLF0KbXlfZGF0YVsyLF0KbXlfZGF0YVszLF0KCmBgYAoKIyMgUmVhZCBjb21tYSBzZXBhcmF0ZWQgdmFsdWUgZGF0YQoKYGBge3J9Cm15X2RhdGEyIDwtIHJlYWRfY3N2KAogICJ4MSwgeDIKICAgMTIsICBNCiAgIDM0LCAgRgogICA0NSwgIEYiCikKbXlfZGF0YTIKCmBgYAoKIyMgUGFyc2luZwoKYGBge3J9CnggPC0gYygiVFJVRSIsICJGQUxTRSIsICJGQUxTRSIpCnN0cih4KQpjbGFzcyh4KQoKeCA8LSBwYXJzZV9sb2dpY2FsKHgpCnN0cih4KQpjbGFzcyh4KQpgYGAKCmBgYHtyfQp4IDwtIGMoMjMsMzQsNDUpCnN0cih4KQpjbGFzcyh4KQoKeCA8LSBwYXJzZV9pbnRlZ2VyKHgpCnN0cih4KQpjbGFzcyh4KQpgYGAKCgpgYGB7cn0KeCA8LSBjKCIyMDE4LTEwLTA2IiwgIjIwMTgtMTAtMDciLCAiMjAxOC0xMC0wOCIpCnN0cih4KQpjbGFzcyh4KQoKeCA8LSBwYXJzZV9kYXRlKHgpCnN0cih4KQpjbGFzcyh4KQpgYGAKCmBgYHtyfQpwcm9ibGVtcyh4KQpgYGAKCgpgYGB7cn0KeCA8LSBwYXJzZV9udW1iZXIoeCkKc3RyKHgpCmNsYXNzKHgpCgp4IDwtIHBhcnNlX2RvdWJsZSh4KQpzdHIoeCkKY2xhc3MoeCkKCmBgYAoKIyMgU3RyaW5ncywgQVNDSUkgY29kZQoKYGBge3J9CmNoYXJUb1JhdygiUHJvZi4gU3Vlc3MiKQpgYGAKCiMjIERhdGVzCgpgYGB7cn0KcGFyc2VfZGF0ZSgiMjAxOC0xMC0wOCIpCmBgYAoKCmBgYHtyfQpsaWJyYXJ5KGhtcykKCnBhcnNlX3RpbWUoIjA2OjMwIHBtIikKYGBgCgoKYGBge3J9CnBhcnNlX2RhdGUoIjEwLzA4LzE4IiwgIiVtLyVkLyV5IikKYGBgCgoKIyMgUGFyc2luZyBhIGZpbGUKClRoaXMgaXMgYSB1c2VmdWwgc2VjdGlvbiB0byByZWFkIG92ZXIuICBJdCBpcyBhYm91dCByZWFkIGFuIGV4dGVybmFsIC5jc3YgZmlsZSBpbnRvIFIuCgpgYGB7cn0KY2hhbGxlbmdlIDwtIHJlYWRfY3N2KHJlYWRyX2V4YW1wbGUoImNoYWxsZW5nZS5jc3YiKSkKCnByb2JsZW1zKGNoYWxsZW5nZSkKYGBgCgoKYGBge3J9CmNoYWxsZW5nZSA8LSByZWFkX2NzdigKICByZWFkcl9leGFtcGxlKCJjaGFsbGVuZ2UuY3N2IiksIAogIGNvbF90eXBlcyA9IGNvbHMoCiAgICB4ID0gY29sX2ludGVnZXIoKSwKICAgIHkgPSBjb2xfY2hhcmFjdGVyKCkKICApCikKYGBgCgoKYGBge3J9CmNoYWxsZW5nZSA8LSByZWFkX2NzdigKICByZWFkcl9leGFtcGxlKCJjaGFsbGVuZ2UuY3N2IiksIAogIGNvbF90eXBlcyA9IGNvbHMoCiAgICB4ID0gY29sX2RvdWJsZSgpLAogICAgeSA9IGNvbF9jaGFyYWN0ZXIoKQogICkKKQpoZWFkKGNoYWxsZW5nZSkKdGFpbChjaGFsbGVuZ2UpCmBgYAoKCmBgYHtyfQpjaGFsbGVuZ2UgPC0gcmVhZF9jc3YoCiAgcmVhZHJfZXhhbXBsZSgiY2hhbGxlbmdlLmNzdiIpLCAKICBjb2xfdHlwZXMgPSBjb2xzKAogICAgeCA9IGNvbF9kb3VibGUoKSwKICAgIHkgPSBjb2xfZGF0ZSgpCiAgKQopCmhlYWQoY2hhbGxlbmdlKQp0YWlsKGNoYWxsZW5nZSkKYGBgCgojIyBXcml0aW5nIGEgY3N2CgpXcml0ZSBpdCwgZ28gZmluZCBpdCwgb3BlbiBpdCBpbiBNUyBFeGNlbC4KCmBgYHtyfQp3cml0ZV9jc3YoY2hhbGxlbmdlLCAiY2hhbGxlbmdlLmNzdiIpCmBgYAoKIyMgV3JpdGUgYW4gLnJkcyBmaWxlLiAgVGhpcyBpcyBhbiBSIGRhdGFzZXQgZmlsZS4KCmBgYHtyfQp3cml0ZV9yZHMoY2hhbGxlbmdlLCAiY2hhbGxlbmdlLnJkcyIpCnJlYWRfcmRzKCJjaGFsbGVuZ2UucmRzIikKYGBgCgoKCgoKCg==