Já aprendemos como somar e agrupar os dados no SAS aqui, no R isso é tão simples quanto, basta você utilizar a função tapply(). A função é composta basicamente de três elementos: o vetor contendo valores, o campo que será utilizado no agrupamento e a função que será aplicada. Continuar a ler “SAS Group By no R”
Etiqueta: r
Proc Sort no R
Muita gente sabe utilizar o proc sort para ordenar os campos no SAS.
Por exemplo, podemos ordenar uma tabela chamada dados_entrada pelas colunas campo1 e campo2, do menor para o maior valor, e ter como saída uma tabela dados_saida (exemplo 1). E podemos também ordenar uma tabela chamada dados_entrada pelas colunas campo1, do menor para o maior, e campo2, do maior para o menor valor, e ter como saída uma tabela dados_saida (exemplo 2). Bastaria utilizar:
* exemplo 1 proc sort data= dados_entrada out= dados_saida; by campo1 campo2; run; * exemplo 2 proc sort data= dados_entrada out= dados_saida; by campo1 descending campo2; run;
A mesma coisa, que nem todo mundo sabe, pode ser feita no R, e é até mais simples:
## exemplo 1 dados_saida = dados_entrada[order(dados_entrada$campo1, dados_entrada$campo2),]; ## exemplo 2 dados_saida = dados_entrada[order(dados_entrada$campo1, -dados_entrada$campo2),];
R sendo R!
Filtros no R
Já falei várias vezes sobre como filtrar os dados no R (Excluindo linhas de uma tabela no R tem algo parecido), segue mais um exemplo:
## Filtrando apenas as linhas com a coluna mes igual a 3 ## na tabela dados_modelo dados_modelo[(dados_modelo$mes == 3),]; ## Filtrando apenas as linhas com a coluna mes igual a 3, 4 ou 5 ## na tabela dados_modelo dados_modelo[dados_modelo$mes %in% c(3,4,5,6,7,8,9,10,11),]; ## Filtrando apenas as linhas com a coluna mes igual a 3, 4, 5, ..., 10 dados_modelo[dados_modelo$mes %in% c(3:10),]; ## Filtrando apenas as linhas com a coluna estado igual a SP dados_modelo[dados_modelo$estado == "SP"),]
E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.
Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!
Como exportar tabelas no R
Mais um post rápido…
Assim como a gente consegue importar tabelas no R utilizando o read.table(), é possível exportar as tabelas, porém, ao invés de ler, você vai escrever. Logo, como todas as funções do R, essa é mais uma bem intuitiva: write.table(). Continuar a ler “Como exportar tabelas no R”
Gráficos no R com qqplot() (Histograma, Gráficos de Dispersão e Boxplot)
A função qqplot() do R – pertencente ao pacote ggplot2 – é uma das melhores para se fazer gráficos. Este post, sem muitas enrolações, é basicamente uma continuidade do Gráficos em R. Aqui vamos utilizar os dados da base Wage do pacote ISLR do R.
Para começar, apenas carregue os pacotes e visualize a base:
library(ggplot2); library(ISLR); View(Wage);
## Tracando grafico simples com qplot ## por default, temos um histograma bem simples qplot(wage, data=Wage);
qplot(wage, data=Wage, bins=15);
## Agora, vamos visualizar cada barra separando pelo estado civil qplot(wage, colour=maritl, data=Wage);
## Separar apenas com a cor do contorno nao ficou legal ## vamos trocar tambem a cor de preenchimento utilizando fill qplot(wage, colour=maritl, fill=maritl, data=Wage);
## Podemos inclusive preencher os blocos com cores diferentes ## Por exemplo, para cada estado civil, queremos ver quantos sao ## saudaveis e quantos nao sao qplot(wage, colour=maritl, fill=health, data=Wage);
## Podemos visualizar graficos de densidade qplot(wage, colour=maritl, data=Wage, geom="density");
## Podemos tentar entender como duas variaveis interagem ## Exemplo: plotar salario vs idade qplot(wage, age, data=Wage);
## Ou ate tentar ver alguma relacao nao linear qplot(wage, age*age, data=Wage);
## Um pouco mais complexo, podemos verificar o comportamento de idade por salario ## para cada raca, dividindo ainda por pessoas que possuem ou nao plano de saude ## essa segunda divisao (raca por plano de saúde) eh feita utilizando facets qplot(age, wage, data=Wage, facets=race~health_ins, xlab="Idade", ylab="Salario");
## Por fim, podemos fazer um boxplot, mas divindo uma variavel por ## cada uma das diferentes classes de uma outra (categorica) ## vamos observar o boxplot de salario para cada classe de trabalhador ## main indica o titulo do grafico, ylab o titulo do eixo y qplot(jobclass, wage, data=Wage, geom=c("boxplot"), fill=jobclass, main="Salario por classe de trabalho", xlab="", ylab="Salario")
Agora você já está pronto para fazer diversos gráficos diferentes no R!
Demonstrando dados com a função aggregate no R
A função aggregate no R é bem interessante. Como o próprio nome diz, ela agrega as informações de um dataframe, incluindo alguma função que é especificada por um parâmetro chamado FUN. Sendo assim, é algo bem interessante para você analista ou cientista de dados! Continuar a ler “Demonstrando dados com a função aggregate no R”
Mascarando os dados (~Contar e criar flag para campo único)
Suponha que você esteja fazendo um modelo qualquer em que um dos campos para identificar os indivíduos seja o nome completo ou algum documento. Talvez não seja legal você passar essa base para outras pessoas com essas informações, e mesmo assim você pode não querer excluir a coluna se o campo fizer parte da análise. Uma forma legal de substituir esse campo é criando um contador que some um apenas quando surge um campo novo. Veja abaixo como criar um campo (aqui chamado de Cliente_id) com o que será a nova identificação do cliente:
## mascarando documentos na base base_dados base_dados$cliente_id <- with(base_dados, as.numeric(factor(Documento,levels=unique(Documento) ))); base_dados$cliente_id; ## traz coluna id para primeira posicao e exclui campo documento base_dados <- base_dados[,c(4,2,3)]; ## poderiamos ter feito passo a passo excluindo a coluna Documento ## utilizando: base_dados <- base_dados[,-1];
Ps.: Os dados são fictícios (obviamente)!
R: Ordenando colunas
Mais uma dica rápida de R, vamos aprender a ordenar as colunas de um conjunto de dados qualquer. Isso geralmente é útil para visualizações, ou no caso de trabalhos com séries temporais.
Utilizando a base de dados german_credit_2, abaixo três formas de mudar as colunas de ordem:
## Le o dataset dados = read.csv("../database/german_credit_2.csv"); ## Traz a coluna 21 para a primeira posicao pelos indices dados = dados[, c(21,1,2,3,...,20]; ## Traz a coluna 21 para a primeira posicao pelos nomes das colunas dados = dados[, c("Foreign Worker","Creditability",...,"Telephone")]; ## Traz a coluna 21 pelos indices, mas criando uma sequencia dados = dados[, c(21, 1:20)];
Para quem não se lembra, ‘1 : 20′ tem como resposta a sequência 1, 2, 3, …, 20.
Claro que o que foi criado acima pode ser modificado de diversas formas:
## Traz a coluna 21, 20 e 19 para a primeira posicao dados = dados[, c(21,20,19,1,2,3,...,18]; ## Traz as colunas de 1 a 5, seguidas pelas de 10 a 20, deixando ## as demais fora dados = dados[, c(1:5, 10:20)];
E aí, curtiu o post?
E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.
Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!
BONS ESTUDOS!
Excluindo linhas de um dataset no R
Mais uma dica rápida que saiu enquanto eu fazia minha tese…
Estava tratando um conjunto de dados no R, quando vi que precisava excluir as linhas que tivessem o campo referente ao mês com valor igual a 1 ou igual a 5. Sempre fiz isso no SAS com um if bem simples, mas não lembrava no R, talvez já tenha feito aqui, mas quem lê o blog sabe que não é lá tão organizado. Enfim, a lógica no R é tão simples quanto a do SAS, mas não tão intuitiva (ao menos para mim). Veja o antes e depois de uma tabela chamada dados retirando as linhas nas quais o campo mês seja igual a 1 ou 5 e quais os códigos utilizar em algumas linguagens que já mencionamos aqui (é tão simples que vou colocar tudo junto mesmo):
No R, podemos resolver com um indexador lógico (! indicando negação):
dados[(dados$mes!=5 & dados$mes!=1),];
Ou então com um subset:
subset(dados, mes != 1 & mes != 5)
Da forma que escrevemos acima, você vai obter uma nova tabela, mas ela não está sendo salva com nome algum. Se você quiser, pode facilmente criar uma nova, como a tabela_nova que criamos no exemplo a seguir:
tabela_nova = subset(dados, mes!=1 & mes !=5)
Se você quiser ver como é no SAS, aqui vai um exemplo com data step:
data dados_v2;
set dados;
if mes ne 1 and mes ne 5; *ou if mes <> 1;
run;
E agora, um exemplo com proc sql:
PROC SQL;
CREATE TABLE dados_v2 AS
SELECT * FROM dados WHERE mes <> 1 AND mes <> 5;
RUN;
Se quiser fazer no SQL:
SELECT * FROM dados WHERE mes <> 1 and mes <> 5;
E aí, curtiu o post?
E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.
Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!
BONS ESTUDOS!
Criando variáveis dummy no R
Uma curtinha só para começar bem a semana…
Utilizando a base de dados german_credit_2 abaixo temos um exemplo de como criar uma variável binária – i.e., uma variável que recebe dois valores, 0 e 1 – com valor 1 para os clientes que possuem um montante de crédito acima de $ 1.000, e valor 0 para os que possuem menos que $ 1.000. Em outras palavras, criamos uma dummy n R. Incluímos uma forma de ler os dados em csv e uma forma de ler em excel:
## Le a base de dados csv dados = read.csv("../database/german_credit_2.csv"); ## le a base de dados excel - Primeiro instala pacote xlsx install.packages("xlsx"); library("xlsx"); dados = read.xlsx("../database/german_credit_2.xlsx", sheetIndex=1); ## cria variavel para quem tem montante maior que mil dados$valor1000 = as.numeric(dados$CreditAmount >= 1000);
E aí, curtiu o post?
E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.
Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!
BONS ESTUDOS!