-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpreparacao_encontro_1_ufpe_pos.R
executable file
·318 lines (188 loc) · 4.66 KB
/
preparacao_encontro_1_ufpe_pos.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
# Introducao Linguagem R - UFPE - 2019
# Davi Moreira
# Encontro 1
1 + 1 # soma dois valores
# pacotes
# install.packages("tidyverse")
# Estruturas de dados no R
## Estruturas de dados
### Variáveis e Vetores
x <- 1
x
x <- 2
x
x <- c(1, 2)
x
x[3]
x <- c(x, 15)
is.vector(x)
length(x)
x <- c(1:10)
x
x <- seq(1, 50, 5)
x
class(x)
is.numeric(x)
x <- c("TCE", "PE", "Recife")
x
is.numeric(x)
class(x)
is.character(x)
x[2]
x[3]
x[length(x)]
x <- c(1, 2, "Recife")
class(x)
x[1] + x [2]
### Matrizes
m1 <- matrix( c(1, 11, 2, 22, 3, 33), nrow = 3,
ncol = 2,
byrow = TRUE)
m1
class(m1)
dim(m1)
m1[1, 2]
m1[dim(m1)[1], dim(m1)[2]]
m1[dim(m1)[1], dim(m1)[2]]
v1 <- c(1,2,3)
v2 <- c(4,5,9)
m2 <- rbind(v1, v2)
m2
class(m2)
dim(m2)
m3 <- matrix( c("a", "b", "c", "d", "e", "f"), nrow = 3,
ncol = 2,
byrow = T)
m4 <- matrix( c(1, 2, 3, "d", "e", "f"), nrow = 3,
ncol = 2,
byrow = T)
m4
### Listas
a <- c(1, 2, 3)
b <- c("a", "b", "c", "d")
c <- c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
lista1 <- list(a, b, c)
lista1
lista1[1]
class(lista1[1])
lista1[[1]]
class(lista1[[1]])
lista1[[2]][1]
lista1[[2]][1] <- "j"
lista1[[2]]
### Data Frames
bd <- data.frame(id = c(1:5), nivel = c("baixo","medio","alto","medio","alto"),
n.alunos = c(500, 200, 100, 200, 100))
bd
dim(bd)
str(bd)
summary(bd)
bd
names(bd)
bd$nivel
class(bd$nivel)
table(bd$nivel)
bd$n.alunos[which.max(bd$n.alunos)]
bd$nivel[which(bd$n.alunos == max(bd$n.alunos))]
View(bd)
### Atividade prática em aula:
# O R possui algumas bases de dados para teste. Uma delas é "mtcars".
head(mtcars)
# Com a base de dados mtcars, obtenha:
# Uma descrição dos tipos de variáveis da base
# Um resumo descritivo da base
# O número de dimensões da base
# Imprima a terceira coluna
# Imprima a segunda linha
# O quarto elemento presente na variável "cyl"
## Exemplo de uso dos operadores
# Soma valores
1+1
# Soma variáveis
x <- 1
y <- 2
x + y
x * y
# Soma vetores
x <- c(1:3)
y <- c(1:3)
z <- x + y
sum(x)
sum(x) == sum(y)
sum(x + y)
x+1
# Comparação
1 == 1
x == y
x != y
# Comparação
x <- c(1:10) # Atribuindo valores de 1 a 10 a x
x # verificando x
x[(x>8) | (x<5)] # Verificando em x quais elementos são maiores que 8 ou menores que 5 # Comparação
y <- c(6, 4, 10) # Atribuindo valores de 1 a 3 a y
x == y
x %in% y # Verificando quais elementos de x também pertencem a y
# Importação e exportação de dados
# Para fazer a verificação de qual diretório está sendo utilizado, basta usar a
# função `getwd()`.
getwd()
setwd("./dados/dados_encontro_1_ufpe/")
getwd()
### Abertura de bases pequenas (ESCOLAS e TURMAS):
turmas <- read.csv2("TURMAS.csv", sep = "|") # Carregando base de dados
# Verificando aspectos estruturais da base de dados:
dim(turmas) # verificando dimensões da base de dados
names(turmas)[1:10] # verificando nomes das colunas na base de dados
head(turmas[1:5, 1:5]) # verificando as primeiras 6 linhas da base de dados
str(turmas)
### Abertura de bases maiores (MATRÍCULAS e DOCENTES):
# install.packages("ffbase", dependencies = TRUE) # instalando o pacote
require(ffbase) # carregando o pacote
# definindo diretório
setwd("./dados/")
getwd()
# carregando base de dados
docentes_ne <- read.csv2.ffdf(file = "DOCENTES_NORDESTE.csv",
sep = "|", first.rows=100000)
# verificando estrutura da base de dados
dim(docentes_ne)
docentes_ne[1:5, 1:5]
names(docentes_ne)
str(docentes_ne)
table.ff(docentes_ne$CO_UF_END)
## Exportação de dados
### Arquivos em formato `ffdf`
# definindo diretório
setwd("./dados/")
getwd()
save.ffdf(docentes_ne, dir = "./docentes_ne", overwrite = TRUE)
rm(list = ls()) # limpando ambiente de trabalho
# definindo diretório
setwd("./dados/")
getwd()
load.ffdf(dir="./docentes_ne")
### Arquivos em formato `.RData`
setwd("./dados/")
getwd()
turmas <- read.csv2("TURMAS.csv", sep = "|") # Carregando base de dados
dim(turmas)
table(turmas$CO_UF)
# selecionando linhas da base nas quais CO_UF == 26
turmas_pe <- subset(turmas, turmas$CO_UF == "26")
# comparando as bases
dim(turmas)
dim(turmas_pe)
# definindo diretório
setwd("./dados/")
getwd()
# salvando nova base
save(turmas_pe, file = "turmas_pe.RData")
rm(list = ls()) # limpando ambiente de trabalho
# Para carregar o arquivo salvo, basta:
# definindo diretório
setwd("./dados/")
load("turmas_pe.RData") # Carregando base de dados
dim(turmas_pe) # verificando dimensões da base de dados
names(turmas_pe) # nomes das colunas da base de dados
head(turmas_pe) # início da base de dados
?read.csv.ffdf