Não foi possível enviar o arquivo. Será algum problema com as permissões?
Essa é uma revisão anterior do documento!
Sessão Inicial -- Fundamentos da Linguagem R
Ciando um diretório (pasta) de trabalho, e mudando o workspace do R para este diretório.
getwd()
dir.create("c:\\cursoR")
setwd("c:\\cursoR")
getwd()
Vamos usar o conjunto de dados hills do pacotes MASS
require(MASS) head(hills) dim(hills) colnames(hills) # nomes das colunas rownames(hills) class(hills)
Duplicando e modificando o conjunto de dados em outro objeto
mh <- edit(hills)
str(hills)
x <- rnorm(10)
class(x)
str(x)
x[2]
x[2:5]
x[x>0]
x[x<0]
x <- round(rnorm(10, mean=70, sd=3), dig=2)
x
y <- sample(c("M", "F"), 10, rep=T)
y
#################################
mean(x[y == "M"])
mean(x[y == "F"])
sum(y == "M")
sum(y == "F")
sum(y == "M")/length(y)
sum(y == "F")/length(y)
mean(y == "M")
mean(y == "F")
mean(y != "M")
dh <- dim(hills)
dh
dh[1]
dh[2]
nrow(hills)
ncol(hills)
vars <- colnames(hills)
vars
str(vars)
names(mh)
names(mh)[2]
names(mh)[2] <- "altitude"
names(mh)
names(mh) <- paste("variavel", 1:3, sep="-")
head(mh)
## lei da reciclagem (recycling rule)
x
x + 10
x + c(10, 20)
x + c(10, 20, 30) ## ou .. x + 10*(1:3)
x
y
pessoas <- data.frame(peso=x, sexo=y)
pessoas
rm(x,y)
head(pessoas)
names(pessoas)
pessoas$peso
pessoas$sexo
dim(pessoas) # dimensão do objeto
pessoas[1:6,]
pessoas[c(3, 5, 8),]
pessoas[pessoas$sexo=="M",]
pessoas[pessoas$sexo=="F",]
subset(pessoas, sexo=="M")
subset(pessoas, sexo=="M" | sexo == "F")
subset(pessoas, sexo=="M" & sexo == "F")
pessoas[,1]
pessoas$peso
pessoas[,"peso"]
with(pessoas, tapply(peso, sexo, mean))
with(pessoas, tapply(peso, sexo, sd))
with(pessoas, tapply(peso, sexo, function(x) 100*sd(x)/mean(x)))
## tapply() ~ by() ~ aggregate()
## lista
ml <- list(a=1:5, b=matrix(rpois(20, lambda=3), nc=4), c=pessoas)
ml
str(ml)
length(ml)
ml$b
is.list(ml)
is.list(ml$b)
is.matrix(ml$b)
is.data.frame(ml$b)
fc <- function(x){
100* sd(x)/mean(x)
}
fc <- function(x){
if(!is.numeric(x))
stop("objeto não numérico")
100* sd(x)/mean(x)
}
fc(pessoas$peso)
fc(pessoas$sexo)
fc1 <- function(x){
if(is.numeric(x)) res <- 100* sd(x)/mean(x)
else res <- table(x)
return(res)
}
fc1(pessoas$peso)
fc1(pessoas$sexo)
fc2 <- function(x) {
if(is.numeric(x)) {
m <- mean(x)
s <- sd(x)
cv <- 100*s/m
ai <- diff(range(x))
res <- c(média=m, "desvio padrão"=s, CV=cv, amplitude=ai)
}
else{
tb <- table(x)
moda <- tb[which.max(tb)]
res <- list(frequencias=tb, moda=moda)
}
return(res)
}
fc2(pessoas$peso)
fc2(pessoas$sexo)
lapply(pessoas, fc2)
df.res <- lapply(pessoas, fc2)
df.res
is.list(df.res)
str(df.res)
summary(pessoas)
sum.res <- summary(pessoas)
sum.res
class(sum.res)
str(sum.res)
## redirecionando saida para um arquivo texto
sink("saidas.txt")
summary(pessoas)
lapply(pessoas, fc2)
pessoas
sink() ## voltando para o dispositivo de saida padrão (tela)
summary(pessoas)