Tabela de conteúdos

R Snippets

Subsetting

# Selecionar apenas as linhas com determinados valores (lidando com NA)
dataset[which(dataset$variable>4),]
 
# Remove rows with NA values
dataset<-dataset[complete.cases(dataset),]
 
# Subset com base em uma string contida num campo
subset<-dataset[!grepl("string",dataset$variable),] # A última vírgula é porque seria possível ainda inserir critérios para as colunas
 
# Selecionar apenas as linhas com determinados valores
dataset[dataset$variable %in% c("valor1","valor2"),] # O %in% retorna TRUE se for igual a um dos valores e FALSE se não for
 
# Selecionar apenas determinadas colunas
myvars <- c("X7", "X8", "X9","X10", "X11", "X12","X26","X28","X29","X30","X31","X32","X33","X34")
cnefeNonResidential<-cnefeNonResidential[myvars]
 
# Salvar dados como TXT
write.table(dataset, "tidyData.txt",row.names=FALSE)
 
# Salvar como arquivo TXT "puro"
fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)

Dplyr

# selecionar apenas as linhas desejadas
newdataset<-filter(dataset,variable>30)
 
# com mais de uma coluna como critério:
newdataset<-filter(dataset,variable1>30 & variable2<50)
 
# Criar novo campo só quando uma condição for verdadeira
rawData<-mutate(rawData, newvariable = ifelse((usoBase==1),[valor caso verdadeiro],[valor caso falso]))
 
# Sumarizar
dataset<-group_by(data, variable) # dataset e a coluna que será usada para indicar os grupos
newdataset<-summarize(dataset,
                      newVariable1=mean(variable1),
                      newVariable2=max(variable2),
                      newVariable3=median(variable3),
                      newVariable4=sum(NumJanelas[NumDoPavto<5], na.rm = TRUE), # Testa condição em outro campo para saber se soma ou não.
                      HighVisibility=sum(Visibilidade=="AV", na.rm = TRUE), # Conta valores específicos de um campo
                      NumberPlots=n_distinct(Lote), # Conta quantidade de valores únicos dentro de um campo
                      Quant=n(), # conta quantos elementos dentro de cada valor usado para agrupar
 
                      # Testa duas condições. Se TRUE, atribui primeiro valor (poderia ser uma operação entre campos); se FALSE, atribui último valor:
                      residentialGround = ifelse((uso=="Residencial" & numPavimento==1),area,0)
 
                      ) #vai usar os grupos indicados no comando anterior
 
# se houver valores nulos em alguma variável, pode dar erro. Solução:
newdataset<-summarize(dataset, newVariable1=mean(variable1,na.rm=TRUE), newVariable2=max(variable2),newVariable3=median(variable3)) #vai usar os grupos indicados no comando anterior
 
# Criar uma nova coluna para realçar possíveis erros com base em uma combinação de valores de outras colunas
checa<-mutate(rawData,
              x=ifelse(pavtosBase == 0 & pavtosTorre != 0, 1, 0) # condição, valor caso TRUE, valor caso FALSE
)