Subsections


3 Tipos de objetos

Os tipos básicos de objetos do Rsão:

Experimente os comandos listados para se familiarizar com estas estruturas.

3.1 Vetores

x1 <- 10
x1

x2 <- c(1, 3, 6)
x2
x2[1]
x2[2]
length(x2)
is.vector(x2)
is.matrix(x2)
is.numeric(x2)
is.character(x2)

x3 <- 1:10
x3

x4 <- seq(0,1, by=0.1)
x4
x4[x4 > 0.5]
x4 > 0.5

x5 <- seq(0,1,  len=11)
x5

x6 <- rep(1, 5)
x6

x7 <- rep(c(1, 2), c(3, 5))
x7

x8 <- rep(1:3, rep(5,3))
x8

x9 <- rnorm(10, mean=70, sd=10)
x9
sum(x9)
mean(x9)
var(x9)
min(x9)
max(x9)
summary(1:10)

x10 <- x9[x9 > 72]

Para mais detalhes sobre vetores voce pode consultar as seguinte páginas:

3.2 Matrizes

m1 <- matrix(1:12, ncol=3)
m1
length(m1)
dim(m1)
nrow(m1)
ncol(m1)
m1[1,2]
m1[2,2]
m1[,2]
m1[3,]
dimnames(m1)
dimnames(m1) <- list(c("L1", "L2", "L3","L4"), c("C1","C2","C3"))
dimnames(m1)
m1[c("L1","L3"),]
m1[c(1,3),]

m2 <- cbind(1:5, 6:10)
m2

m3 <- cbind(1:5, 6)
m3

Para mais detalhes sobre matrizes consulte a página:

3.3 Arrays

O conceito de array generaliza a idéia de matrix. Enquanto em uma matrix os elementos são organizados em duas dimensões (linhas e colunas), em um array os elementos podem ser organizados em um número arbitrário de dimensões.

No R um array é definido utilizando a função array().

  1. Defina um array com o comando a seguir e inspecione o objeto certificando-se que voce entendeu como arrays são criados.
    ar1 <- array(1:24, dim=c(3,4,2))
    ar1
    

    Examine agora os seguinte comandos:

    ar1 <- array(1:24, dim=c(3,4,2))
    ar1[,2:3,]
    ar1[2,,1]
    sum(ar1[,,1])
    sum(ar1[1:2,,1])
    

  2. Inspecione o ``help'' da função array (digite help(array)), rode e inspecione os exemplos contidos na documentação.

Veja agora um exemplo de dados já incluido no R no formato de array. Para ``carregar'' e visualizar os dados digite:

data(Titanic)
Titanic

Para maiores informações sobre estes dados digite:

    
help(Titanic)

Agora responda às seguintes perguntas, mostrando os comandos do R utilizados:

  1. quantas pessoas havia no total?
  2. quantas pessoas havia na tripulação (crew)?
  3. quantas crianças sobreviveram?
  4. qual a proporção (em %) entre pessoas do sexo masculino e feminino entre os passageiros da primeira classe?
  5. quais sao as proporções de sobreviventes entre homens e mulheres?

3.4 Data-frames

d1 <- data.frame(X = 1:10, Y = c(51, 54, 61, 67, 68, 75, 77, 75, 80, 82))
d1
names(d1)
d1$X
d1$Y
plot(d1)
plot(d1$X, d1$Y)

d2 <- data.frame(Y= c(10+rnorm(5, sd=2), 16+rnorm(5, sd=2), 14+rnorm(5, sd=2)))
d2$lev <- gl(3,5)
d2
by(d2$Y, d2$lev, summary)

d3 <- expand.grid(1:3, 4:5)
d3

Para mais detalhes sobre data-frame consulte a página:

3.5 Listas

Listas são estruturas genéricas e flexíveis que permitem armazenar diversos formatos em um único objeto.

lis1 <- list(A=1:10, B="THIS IS A MESSAGE", C=matrix(1:9, ncol=3))
lis1

lis2 <- lm(Y ~ X, data=d1)
lis2
is.list(lis2)
class(lis2)
summary(lis2)
anova(lis2)
names(lis2)
lis2$pred
lis2$res
plot(lis2)

lis3 <- aov(Y ~ lev, data=d2)
lis3
summary(lis3)

3.6 Funções

O conteúdo das funções podem ser vistos digitando o nome da função (sem os parênteses).
lm
glm
plot
plot.default

Entretanto isto não é disponível desta forma para todas as funções como por exemplo em:

min
max
rnorm
lines
Nestes casos as funções não são escritas em linguagem R (em geral estão escritas em C) e voce tem que examinar o código fonte do R para visualizar o conteúdo das funções.

Paulo Justiniano Ribeiro Jr