- install the package "datasets" and "MASS", and load it in
require(datasets) require(MASS)
## Loading required package: MASS
## Warning: package 'MASS' was built under R version 3.1.3
- We would use "sleep" and "phones" in this lab session
Monday, October 15, 2015
require(datasets) require(MASS)
## Loading required package: MASS
## Warning: package 'MASS' was built under R version 3.1.3
What are the differences between dataframes and lists?
# - lists can contain various types of data # - lists can have various lengths of data
Explore datasets "sleep" and "phones".
Which dataset is a list?
# phones! str(sleep)
## 'data.frame': 20 obs. of 3 variables: ## $ extra: num 0.7 -1.6 -0.2 -1.2 -0.1 3.4 3.7 0.8 0 2 ... ## $ group: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ... ## $ ID : Factor w/ 10 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
str(phones)
## List of 2 ## $ year : num [1:24] 50 51 52 53 54 55 56 57 58 59 ... ## $ calls: num [1:24] 4.4 4.7 4.7 5.9 6.6 7.3 8.1 8.8 10.6 12 ...
Which column within "sleep" data is an ordered factor?
# None! str(sleep)
## 'data.frame': 20 obs. of 3 variables: ## $ extra: num 0.7 -1.6 -0.2 -1.2 -0.1 3.4 3.7 0.8 0 2 ... ## $ group: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ... ## $ ID : Factor w/ 10 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
str(phones)
## List of 2 ## $ year : num [1:24] 50 51 52 53 54 55 56 57 58 59 ... ## $ calls: num [1:24] 4.4 4.7 4.7 5.9 6.6 7.3 8.1 8.8 10.6 12 ...
Extract the rows of group 1 in "sleep".
sleep[sleep$group==1,]
## extra group ID ## 1 0.7 1 1 ## 2 -1.6 1 2 ## 3 -0.2 1 3 ## 4 -1.2 1 4 ## 5 -0.1 1 5 ## 6 3.4 1 6 ## 7 3.7 1 7 ## 8 0.8 1 8 ## 9 0.0 1 9 ## 10 2.0 1 10
Extract the rows that have negative values in extra column.
sleep[sleep$extra < 0,]
## extra group ID ## 2 -1.6 1 2 ## 3 -0.2 1 3 ## 4 -1.2 1 4 ## 5 -0.1 1 5 ## 15 -0.1 2 5
Explore dataset "phones", and extract the first 6 elements in variable year.
head(phones$year)
## [1] 50 51 52 53 54 55
Create a new list All, which contains both the datasets "sleep" and "phones".
All <- list(sleep = sleep, phones = phones)
Copy and past the below information.
movies <- c('Titanic', 'Minions') like <- c(rep('bad',5), rep('good',2), rep('good', 100)) comments <- c('hate!', 'awful~', 'AWFUL!!','not recommended', 'the music is not good', 'love the actors', rep('soooooo cute!!!!', 20))
A total of 107 people sent their reviews to the two movies. The first 7 elements of like are for the movie "Titanic", and the rest is for "Minions". In addition, the first 6 elements of comments are given by the first 6 "Titanic" reviewers, and the rest of 20 elements is provided by the last 20 "Minions" reviewers.
reviews <- list(movies=movies, like=like, comments=comments) length(reviews[[3]])
## [1] 26
review_data <- data.frame( movies = c(rep('Titanic',7), rep('Minions',100)), like = like, comments = c(head(comments), rep('None',81), tail(comments,20))) review_data[review_data$like=='good',]
## movies like comments ## 6 Titanic good love the actors ## 7 Titanic good None ## 8 Minions good None ## 9 Minions good None ## 10 Minions good None ## 11 Minions good None ## 12 Minions good None ## 13 Minions good None ## 14 Minions good None ## 15 Minions good None ## 16 Minions good None ## 17 Minions good None ## 18 Minions good None ## 19 Minions good None ## 20 Minions good None ## 21 Minions good None ## 22 Minions good None ## 23 Minions good None ## 24 Minions good None ## 25 Minions good None ## 26 Minions good None ## 27 Minions good None ## 28 Minions good None ## 29 Minions good None ## 30 Minions good None ## 31 Minions good None ## 32 Minions good None ## 33 Minions good None ## 34 Minions good None ## 35 Minions good None ## 36 Minions good None ## 37 Minions good None ## 38 Minions good None ## 39 Minions good None ## 40 Minions good None ## 41 Minions good None ## 42 Minions good None ## 43 Minions good None ## 44 Minions good None ## 45 Minions good None ## 46 Minions good None ## 47 Minions good None ## 48 Minions good None ## 49 Minions good None ## 50 Minions good None ## 51 Minions good None ## 52 Minions good None ## 53 Minions good None ## 54 Minions good None ## 55 Minions good None ## 56 Minions good None ## 57 Minions good None ## 58 Minions good None ## 59 Minions good None ## 60 Minions good None ## 61 Minions good None ## 62 Minions good None ## 63 Minions good None ## 64 Minions good None ## 65 Minions good None ## 66 Minions good None ## 67 Minions good None ## 68 Minions good None ## 69 Minions good None ## 70 Minions good None ## 71 Minions good None ## 72 Minions good None ## 73 Minions good None ## 74 Minions good None ## 75 Minions good None ## 76 Minions good None ## 77 Minions good None ## 78 Minions good None ## 79 Minions good None ## 80 Minions good None ## 81 Minions good None ## 82 Minions good None ## 83 Minions good None ## 84 Minions good None ## 85 Minions good None ## 86 Minions good None ## 87 Minions good None ## 88 Minions good soooooo cute!!!! ## 89 Minions good soooooo cute!!!! ## 90 Minions good soooooo cute!!!! ## 91 Minions good soooooo cute!!!! ## 92 Minions good soooooo cute!!!! ## 93 Minions good soooooo cute!!!! ## 94 Minions good soooooo cute!!!! ## 95 Minions good soooooo cute!!!! ## 96 Minions good soooooo cute!!!! ## 97 Minions good soooooo cute!!!! ## 98 Minions good soooooo cute!!!! ## 99 Minions good soooooo cute!!!! ## 100 Minions good soooooo cute!!!! ## 101 Minions good soooooo cute!!!! ## 102 Minions good soooooo cute!!!! ## 103 Minions good soooooo cute!!!! ## 104 Minions good soooooo cute!!!! ## 105 Minions good soooooo cute!!!! ## 106 Minions good soooooo cute!!!! ## 107 Minions good soooooo cute!!!!