Programação no R - Aula 7

Disciplina: Lógica da programação (de computadores) e análise de dados no R

Prof. Maurício Garcia de Camargo. IO-FURG.

2025-10-17

Dataframes (DF) no R

Já sabemos:

  • Criar DF
dad = data.frame(col1=c(5,3,8) , col2=c('A','B','C'))
dad
  col1 col2
1    5    A
2    3    B
3    8    C
  • Criar colunas em um DF
dad$nova_col = 0
dad
  col1 col2 nova_col
1    5    A        0
2    3    B        0
3    8    C        0

Dataframes (DF) no R

  • Extrair elementos do DF (linha,coluna):
dad
  col1 col2 nova_col
1    5    A        0
2    3    B        0
3    8    C        0
dad[2,1]  # linha 2, coluna 1 
[1] 3
  • Extrair as colunas do DF:
dad$col1
[1] 5 3 8
# ou
dad[,1]
[1] 5 3 8

Dataframes (DF) no R

  • Filtrar um DF
dad
  col1 col2 nova_col
1    5    A        0
2    3    B        0
3    8    C        0
dad[dad$col1>4 , c(1,2)]
  col1 col2
1    5    A
3    8    C
dad[dad$col2=='A' | dad$col2=='B' , c(1,2)]
  col1 col2
1    5    A
2    3    B

Exemplo de Dataframe (DF)

Crie o seguinte DF:

estacao = c(rep('V',4) , rep('I',4))
local = rep(c('L1','L2'),4)
set.seed(18)           # Semente dos números aleatórios a seguir
sp1 = trunc(runif(8,0,4))
sp2 = trunc(runif(8,0,12))
sp3 = trunc(runif(8,0,6))
sal = round( rnorm(8,25,8) , 1)
temp = round( rnorm(8,20,6) , 1)
df1 = data.frame(local,estacao,sp1,sp2,sp3,sal,temp)
df1
  local estacao sp1 sp2 sp3  sal temp
1    L1       V   3   4   3 14.6 12.2
2    L2       V   2   2   0 25.3 26.7
3    L1       V   3   7   5 18.7 15.4
4    L2       V   0   9   0 34.7 15.9
5    L1       I   0   1   0 17.6 22.8
6    L2       I   2   3   0 19.6  8.3
7    L1       I   1  11   4 35.7 13.7
8    L2       I   2   1   5 28.7 19.3

Fatores em Dataframes (DF)

Variáveis categóricas são chamadas de fatores (factors) no R, e as categorias são chamadas de níveis (levels).

is.factor(df1$estacao)  #False
[1] FALSE
df1$estacao = as.factor(df1$estacao)  #Transforma o vetor num fator
is.factor(df1$estacao)  #True
[1] TRUE
df1$estacao
[1] V V V V I I I I
Levels: I V

Funções específicas para DF

head(df1, 3)      # primeiras linhas
  local estacao sp1 sp2 sp3  sal temp
1    L1       V   3   4   3 14.6 12.2
2    L2       V   2   2   0 25.3 26.7
3    L1       V   3   7   5 18.7 15.4
tail(df1, 2)      # últimas
  local estacao sp1 sp2 sp3  sal temp
7    L1       I   1  11   4 35.7 13.7
8    L2       I   2   1   5 28.7 19.3
dim(df1) 
[1] 8 7
nrow(df1) 
[1] 8
ncol(df1)
[1] 7

Funções específicas para DF

names(df1)        # nomes das colunas
[1] "local"   "estacao" "sp1"     "sp2"     "sp3"     "sal"     "temp"   
str(df1)          # estrutura (tipos por coluna)
'data.frame':   8 obs. of  7 variables:
 $ local  : chr  "L1" "L2" "L1" "L2" ...
 $ estacao: Factor w/ 2 levels "I","V": 2 2 2 2 1 1 1 1
 $ sp1    : num  3 2 3 0 0 2 1 2
 $ sp2    : num  4 2 7 9 1 3 11 1
 $ sp3    : num  3 0 5 0 0 0 4 5
 $ sal    : num  14.6 25.3 18.7 34.7 17.6 19.6 35.7 28.7
 $ temp   : num  12.2 26.7 15.4 15.9 22.8 8.3 13.7 19.3
summary(df1)      # resumo estatístico
    local           estacao      sp1             sp2             sp3       
 Length:8           I:4     Min.   :0.000   Min.   : 1.00   Min.   :0.000  
 Class :character   V:4     1st Qu.:0.750   1st Qu.: 1.75   1st Qu.:0.000  
 Mode  :character           Median :2.000   Median : 3.50   Median :1.500  
                            Mean   :1.625   Mean   : 4.75   Mean   :2.125  
                            3rd Qu.:2.250   3rd Qu.: 7.50   3rd Qu.:4.250  
                            Max.   :3.000   Max.   :11.00   Max.   :5.000  
      sal             temp      
 Min.   :14.60   Min.   : 8.30  
 1st Qu.:18.43   1st Qu.:13.32  
 Median :22.45   Median :15.65  
 Mean   :24.36   Mean   :16.79  
 3rd Qu.:30.20   3rd Qu.:20.18  
 Max.   :35.70   Max.   :26.70  

Exercício 1 - fatiando um DF

Separe o df1 em três novos DF:

1.2. bio (bióticos: espécies)

1.3. abio (abióticos: sal e temp)

Exercício 2 - criando novos DF

Crie os novos DF:

2.1. tab_bio = Fatores + dados bióticos apenas

2.2. tab_abio = Fatores + dados abióticos apenas

2.3. tab_inv = Fatores + dados bióticos e filtrar as linhas de inverno

2.4. tab_ver = Fatores + dados bióticos e filtrar as linhas de verão

Exercício 3 - filtrando um DF

3.1. Crie um novo DF contendo apenas amostras do local L1 do verão

3.2. Crie um novo DF contendo apenas amostras do inverno com temperatures abaixo de 15 graus.

3.3. Crie um novo DF contendo apenas amostras com salinidade abaixo de 30 OU temperatures acima de 20 graus.

3.4. Crie um novo DF contendo apenas amostras do inverno com abundâncias da espécie sp3 diferentes de zero.

3.5. Crie um novo DF contendo apenas amostras do com abundâncias da sp1 E da sp2 maiores que zero.

Exercícios com DF - cálculos com DF

  • Exercício 4

4.1. Calcule o valor médio e o desvio padrão da salinidade

4.2. Calcule o valor máximo e mínimo da temperatura

4.3. Calcule a abundância total das 3 espécies (soma das 3 abundâncias por linha)

4.4. Calcule a riqueza de espécies das 3 espécies (primeiro crie uma tabela de presença-ausência, depois somar as linhas)

Manipulação de arquivos no R para abrir planilhas do Excel como DF no R

  • Mostrar como manipular Working dir no RStudio.
  • Criar uma planilha qualquer no Excel com nomes nas colunas e salvar como formato csv.
  • No R, abrir o arquivo usando a função read.csv ou read.csv2.
  • Alternativamente, é possível abrir um arquivo Excel (xls ou xlsx) diretamente no R, usando o pacote readxl.