exclusão

Excluindo linhas de uma tabela no R

Mais uma dica rápida que saiu enquanto eu fazia minha tese…

Estava preparando uma base de dados no R, quando vi que precisava excluir as linhas que tivesse 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 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):

excluir-linhas

No R com um indexador lógico (! indicando negação):

dados[(dados$mes!=5 & dados$mes!=1),];

No R com 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:

tabela_nova = subset(dados, mes!=1 & mes !=5)

No SAS com data step:

data dados_v2;
    set dados;
    if mes ne 1 and mes ne 5; *ou if mes <> 1;
run;

No SAS com proc sql:

proc sql;
    create table dados_v2 as
    select * from
    dados where mes <> 1 and mes <> 5; 
run;

No SQL:

select * from dados where mes <> 1 and mes <> 5;
Anúncios