Definindo e organizando a área de trabalho – onde estou?
## criando um diretório (pasta) na área do usuário ## na linha de comando do LINUX (antes de entrar no R) digitar: ## $ mkdir cursoR ## ou ... de dentro do R ## system("mkdir ~/cursoR") ## inspecionando e definindo a área de trabalho getwd() setwd("~/cursoR") getwd()
Operações O R faz contas como uma calculadora…
3+2 log(10)/sqrt(20) 5*exp(-20/10)
Criando objetos / atribuindo valores / definindo vetores
x <- 3 x x = 3 y <- 4 y z <- 4:8 z 10:20 -> w ## ou seja, pode usar "<-" , "=" ou mesmo "->" ## gravando os objetos em disco save.image() ## concatenando vetores todos <- c(x, y, z, w) todos ## apagando objetos rm(x, y, z, w) ## definindo outro vetor usando a função scan para entrar com dados #x <- scan() #1: 5 #2: 1 #3: 8 #4: 12 #5: 3 #6: ## que é o mesmo que x <- c(5, 1, 8, 12, 3) ## [ ] seleciona partes do objeto x[2] ## segundo elemento x[2:3] ## segundo e terceiro elemento x[2:4] ## segundo a quarto elemento x[c(3, 5)] # terceiro e quinto elemento rev(x) # reverte a ordem dos elementos de x ## vetor de caracters pessoas <- c("João", "Maria", "Pedro") ## estruturas dos objetos... numéricos e caracteres str(x) str(pessoas) ## podemos converter de precisão dupla para inteiro xi <- as.integer(x) str(x)
Definindo um data-frame que é um agrupamento de vetores
## o seguinte comando abre uma tela para digitação de dados ##df <- edit(data.frame()) ## .. que é o mesmo que digitar df <- data.frame(c("João", "Maria", "Pedro"), c(23, 25, 28)) df ## veja a estrutura do objeto # dimensao do objeto dim(df) ## selecionando linhas e colunas do objeto df$var1 df$var2 df[,1] df[,2] df[2,] df[2:3,] df[2:3,1] df[c(1,3),2]
Lendo/importando dados de um arquivo
ex01 <- read.table("exemplo01.txt") ## nao ficou bom...primeira linha não sao dados ex01 head(ex01) # mostra as linhas iniciais do objeto str(ex01) # estrutura dos dados ex01 <- read.table("exemplo01.txt", head=T) ## leitura correta! ## note que uma coluna é de "fator" (factor) str(ex01) ex01 head(ex01) ## calculando a média de "resp" para cada grupo de "trat" with(ex01, tapply(resp, trat, mean)) ## armazenando em um objeto mTrat <- with(ex01, tapply(resp, trat, mean)) mTrat mTrat <- with(ex01, tapply(resp, trat, median)) ## calculando outras medidas with(ex01, tapply(resp, trat, median)) with(ex01, tapply(resp, trat, sd)) with(ex01, tapply(resp, trat, summary)) ## calculando uma medida nao definida no R: definindo uma função CV <- function(x) {100*sd(x)/mean(x)} with(ex01, tapply(resp, trat, CV)) ## arredondando saida para 2 casas decimais round(with(ex01, tapply(resp, trat, CV)), dig=2) ## calculando varias medidas escolhidas para cada grupo meuResumo <- function(x){c(mean(x), sd(x), CV(x))} with(ex01, tapply(resp, trat, meuResumo)) ## acrescentando nomes das medidas meuResumo <- function(x){c(media=mean(x), devio=sd(x), CV=CV(x))} with(ex01, tapply(resp, trat, meuResumo)) ## detalhes sobre o uso da função ?tapply
Gravando em disco (arquivo .RData) objetos da área de trabalho
save.image()
Saindo do R
q()