Utilizando a função obrigatorios(), obtém-se os exercícios designados, expostos na tabela a seguir.
| Seção | Página | Exercícios |
|---|---|---|
| 6.1 | 107 | a |
| 6.2 | 113 | b |
| 6.3 | 125 | b,c |
| 8.1 | 161 | b,c |
Armazene o seguinte vetor:
foo <- c(13563,-14156,-14319,16981,12921,11979,9568,8833,-12968,8133)
Faça o seguinte:
foo que, quando elevados à potência 75, são não-infinitos;foo, exceto aqueles que resultam em infinito negativo quando elevado à potência 75.foo <- c(13563,-14156,-14319,16981,12921,11979,9568,8833,-12968,8133)
#i
infinitos <- foo^75
foo[is.infinite(infinitos) == FALSE]
## [1] 11979 9568 8833 8133
#ii
foo[infinitos != -Inf]
## [1] 13563 16981 12921 11979 9568 8833 8133
Crie e armazene a lista contendo um único membro: o vetor c(7,7,NA,3,NA,1,1,5,NA). Faça o seguinte:
NA#i
lista <- list(alpha = c(7,7,NA,3,NA,1,1,5,NA))
#ii
is.null(lista$beta)
## [1] TRUE
#iii
lista$beta <- lista$alpha[which(is.na(lista$alpha))]
lista
## $alpha
## [1] 7 7 NA 3 NA 1 1 5 NA
##
## $beta
## [1] NA NA NA
Para cada objeto criado abaixo, ache a soma de chamar as funções is.numeric() e is.integer() separadamente – por exemplo, is.numeric(foo)+is.integer(foo).
foo <- array(data=1:36,dim=c(3,3,4))
bar <- as.vector(foo)
baz <- as.character(bar)
qux <- as.factor(baz)
quux <- bar+c(-0.1,0.1)
somaf <- function(x){is.numeric(x)+is.integer(x)}
fator <- factor(c(somaf(foo),somaf(bar), somaf(baz), somaf(qux), somaf(quux)))
fator
## [1] 2 2 0 0 1
## Levels: 0 1 2
as.numeric(fator)
## [1] 3 3 1 1 2
Fica evidente que, ao converter o vetor de fator para um vetor numérico, os elementos são convertidos para os índices dos níveis disponíveis que, em R, tem início em 1.
Transforme a matriz 3x4 em um vetor de caracteres.
mat <- matrix(c(2:13), nrow = 3)
as.character(mat)
## [1] "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13"
Instale o pacote car e acesse a base de dados Duncan e seu arquivo de suporte. Faça o seguinte:
Dentro dos chunks abaixo há comentários indicando as linhas que deveriam ser executadas caso se desejasse salvar a figura conforme as configurações desejadas.
library(car)
data("Duncan")
dun_prest <- subset(Duncan, prestige >= 80)
#executar as linhas comentadas abaixo para salvar:
#png(filename = <"SUBSTITUIR POR PATH">, width = 500, height = 500)
plot(Duncan$education, Duncan$income, ylab = "Eixo de pé - income", xlab = "Eixo deitadis - education", xlim = c(1, 100), ylim = c(1, 100), main = "Base de dados Duncan - dispersão em R base", sub = "Pontos azuis indicam indivíduos com prestígio maior ou igual a 80")
legend("topleft", legend = c("Prestígio >= 80", "Prestígio < 80"),pch = c(16,1),col = c("blue","black"))
points(dun_prest$education, dun_prest$income, pch = 19, col = "blue")
#dev.off()
Crie uma lista chamada exer que contenha as bases: quakes, q.5dframe e Duncan. Faça o seguinte:
list.of.dataframes. Verifique que esse objeto de fato contem três objetos tipo dataframe.Os comentários abaixo da criação indicam os passos necessários tanto para escrever como para ler o arquivo conforme as instruções.
data("quakes")
exer = list(
quakes = quakes,
q.5dframe = subset(quakes, mag >= 5),
Duncan = Duncan
)
# dput(exer, file = <"PATH.txt">)
#
# list.of.dataframes <- dget(file = <"PATH.txt">)
str(exer)
## List of 3
## $ quakes :'data.frame': 1000 obs. of 5 variables:
## ..$ lat : num [1:1000] -20.4 -20.6 -26 -18 -20.4 ...
## ..$ long : num [1:1000] 182 181 184 182 182 ...
## ..$ depth : int [1:1000] 562 650 42 626 649 195 82 194 211 622 ...
## ..$ mag : num [1:1000] 4.8 4.2 5.4 4.1 4 4 4.8 4.4 4.7 4.3 ...
## ..$ stations: int [1:1000] 41 15 43 19 11 12 43 15 35 19 ...
## $ q.5dframe:'data.frame': 198 obs. of 5 variables:
## ..$ lat : num [1:198] -26 -20.7 -13.6 -19.7 -16.5 ...
## ..$ long : num [1:198] 184 170 166 180 181 ...
## ..$ depth : int [1:198] 42 139 50 431 498 129 613 627 40 506 ...
## ..$ mag : num [1:198] 5.4 6.1 6 5.4 5.2 5.1 5 5 5.5 5.2 ...
## ..$ stations: int [1:198] 43 94 83 57 79 73 61 45 91 75 ...
## $ Duncan :'data.frame': 45 obs. of 4 variables:
## ..$ type : Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 3 2 ...
## ..$ income : int [1:45] 62 72 75 55 64 21 64 80 67 72 ...
## ..$ education: int [1:45] 86 76 92 90 86 84 93 100 87 86 ...
## ..$ prestige : int [1:45] 82 83 90 76 90 87 93 90 52 88 ...