Como usar o na.rm para lidar com valores ausentes no R
Definimos na.rm = TRUE em funções comuns do R para excluir valores ausentes (NA). Isso nos ajuda a computar estatísticas precisas e aumenta a confiabilidade dos nossos resultados.
Os dados estão sendo gerados e consumidos em um ritmo industrial para orientar as principais decisões de negócios. No entanto, um desafio comum na análise de dados é a presença de valores ausentes. Isso pode distorcer os resultados, tornando inevitável para qualquer analista de dados lidar com eles de forma eficaz. No R, uma das ferramentas fundamentais para gerenciar valores ausentes é o parâmetro na.rm.
Esta publicação explica a importância de lidar com dados ausentes, como funciona o na.rm no R, demonstra seu uso em várias funções e conclui com a discussão de algumas técnicas alternativas para identificar e lidar com dados ausentes.
A resposta curta: O que é na.rm?
O parâmetro na.rm no R significa "NA remove" e ignora os valores NA (ausentes) durante os cálculos. Ao definir na.rm = TRUE, funções como mean(), sum(), min(), max(), median() e sd() calculam os resultados sem serem afetadas por valores ausentes.
O parâmetro na.rm, escrito em letras minúsculas, inclui um valor booleano:TRUE ou FALSE. Quando definimos na.rm = TRUE, o R exclui os valores de NA dos cálculos. Sem esse parâmetro, as funções retornariam NA se houvesse valores ausentes nos dados. Dê uma olhada.
vector_with_na <- c(1,2,NA)
sum(vector_with_na, na.rm =TRUE)# removes NA values — returns 3
sum(vector_with_na)# includes NA values — returns NA
sum(vector_with_na, na.rm =FALSE)# includes NA values — returns NATecnologia
Confira o curso Introdução ao R para saber mais sobre a programação básica do R.
Por que usar a na.rm?
O tratamento de valores ausentes é crucial na análise de dados para garantir resultados precisos, pois eles podem afetar significativamente os cálculos estatísticos, levando inadvertidamente a conclusões incorretas. O uso do site na.rm torna conveniente evitar erros ignorando esses valores ausentes, realizando assim cálculos confiáveis e mantendo a integridade dos dados.
Funções comuns usando na.rm: Alguns exemplos práticos
Agora, vamos entender como você pode usar o na.rm no R. Várias funções do R incorporam o parâmetro na.rm (definido como FALSE por padrão). Aqui estão alguns exemplos comuns:
sum()
Como o nome sugere, o sum() calcula o total de valores em um vetor. Vamos criar um vetor chamado vector_with_na, que usaremos ao longo deste tutorial.
Usando o mesmo exemplo, a função mean() calcula a média, ou seja, a média dos valores em nosso vetor.
mean(vector_with_na)# Returns NA
mean(vector_with_na, na.rm =TRUE)# Returns 2.33Tecnologia
sd()
Continuando com vector_with_na, o sd() calcula o desvio padrão do vetor.
sd(vector_with_na)# Returns NA
sd(vector_with_na, na.rm =TRUE)# Returns 1.53Tecnologia
min()
O site min() encontra o valor mínimo.
min(vector_with_na)# Returns NA
min(vector_with_na, na.rm =TRUE)# Returns 1Tecnologia
max()
max() encontra o valor máximo.
max(vector_with_na)# Returns NA
max(vector_with_na, na.rm =TRUE)# Returns 4Tecnologia
median()
median() encontra o valor intermediário quando organizado em ordem.
median(vector_with_na)# Returns NA
median(vector_with_na, na.rm =TRUE)# Returns 2Tecnologia
Observe que, na ausência de na.rm = TRUE, todas essas funções agregadas retornam NA.
Ao definir na.rm = TRUE, essas funções excluem os valores de NA, o que resulta em cálculos precisos e significativos. O programa de habilidades R Programming Fundamentals pode ser um bom recurso para você entender melhor o uso e a sintaxe dessas funções.
Manipulação de valores ausentes em diferentes estruturas de dados
Vamos dar uma olhada em como lidar com valores ausentes em diferentes estruturas de dados. Antes de continuarmos, confira nosso artigo Como dominar as estruturas de dados na linguagem de programação R se você quiser saber mais sobre as estruturas de dados do R.
Vetores
Em vetores, o na.rm pode ser usado diretamente nas funções para excluir valores ausentes. Os exemplos compartilhados na seção anterior são todos exemplos de na.rm em ação em vetores.
Quadros de dados
Para quadros de dados, o na.rm pode ser aplicado dentro de funções usadas em colunas específicas ou em linhas usando o apply(), conforme mostrado abaixo:
MARGINArgumento para identificar onde aplicar a função:
MARGIN=1 para manipulação de linhas
MARGIN=2 para manipulação de colunas
MARGIN=c(1,2) para manipulação de linhas e colunas
FUN: informa qual função você deve aplicar. Você pode aplicar funções integradas, como mean(), median(), sum(), min(), max(), e funções definidas pelo usuário.
Vamos criar um quadro de dados para nossa referência ao longo deste tutorial.
A função lapply() no R é usada para aplicar uma função especificada a cada elemento de uma lista, vetor ou quadro de dados e retorna uma lista com o mesmo comprimento. Essa função não requer um parâmetro MARGIN, pois aplica automaticamente a operação a todos os elementos.
vector_with_na: A lista, o vetor ou o quadro de dados de entrada.
fun: A função a ser aplicada a cada elemento de dados de entrada.
Vamos entender lapply() usando um exemplo de lista. Aqui temos uma lista de coleções (item_1 e item_2) com elementos semelhantes ao quadro de dados (dataframe_with_na). Nosso objetivo é encontrar a média de cada coleção.
A função sapply() é semelhante à lapply(), mas retorna um array ou matriz em vez de uma lista. Vamos usar a lista (list_with_na) e o sapply() para calcular a média dos valores de cada coleção dentro dela.
sapply(list_with_na, mean)# Returns# a b # NA NA
sapply(list_with_na, mean, na.rm =TRUE)# Returns# a b # 3.333333 5.333333Tecnologia
Agora, vamos usar o quadro de dados (dataframe_with_na) e o sapply() para calcular a soma dos valores de cada coluna.
sapply(dataframe_with_na, sum)# Returns# col1 col2 # NA NA
sapply(dataframe_with_na, sum, na.rm=TRUE)# Returns# col1 col2 # 10 16Tecnologia
Para que você tenha uma compreensão mais ampla da manipulação de dados em R, o curso Manipulação de dados com dplyr é altamente recomendado. Se você se sentir inseguro em relação à família de funções apply() especificamente, leia nosso tutorial sobre a família Apply do R.
Comparação com na.omit() e complete.cases()
na.omit(): Essa função remove todas as linhas que contêm valores NA em um quadro de dados. Vamos entender isso com um exemplo:
complete.cases(): Por outro lado, complete.cases() identifica as linhas sem nenhum valor NA e retorna um bool correspondente a cada linha (FALSE para linhas com NA e vice-versa). Isso pode ser usado para filtrar os valores que não estão faltando no quadro de dados, conforme mostrado abaixo.
Técnicas avançadas para lidar com valores ausentes
Além do na.rm, o R oferece métodos avançados para lidar com dados ausentes:
Usando is.na() para identificar valores ausentes
is.na() pode ser aplicado diretamente em um vetor ou quadro de dados para identificar dados ausentes. Ele retorna um TRUE correspondente a cada valor ausente.
É interessante notar que a funçãosummary() é diferente de usar na.rm para lidar com valores ausentes. Por padrão, o site summary() exclui automaticamente os valores ausentes ao calcular as estatísticas resumidas e, posteriormente, informa o número de NAs presentes nos dados.
Vamos executar summary() no vetor vector_with_na:
summary(vector_with_na)#Returns# Min. 1st Qu. Median Mean 3rd Qu. Max. NA's # 1.000 1.500 2.000 2.333 3.000 4.000 1Tecnologia
E no quadro de dados dataframe_with_na:
summary(dataframe_with_na)# Returns# col1 col2 # Min. :1.00 Min. :4.00 # 1st Qu.:2.50 1st Qu.:4.75 # Median :3.00 Median :5.00 # Mean :3.25 Mean :5.25 # 3rd Qu.:3.75 3rd Qu.:5.50 # Max. :6.00 Max. :7.00 Tecnologia
O curso Intermediate R oferece insights aprofundados para os interessados em técnicas mais avançadas de manipulação de dados.
Práticas recomendadas para lidar com valores ausentes
O tratamento eficaz de valores ausentes envolve várias práticas recomendadas:
Sempre verifique se há valores ausentes
Identificar e compreender a extensão dos dados ausentes antes de realizar os cálculos. O exemplo abaixo mostra que o quadro de dados tem um total de 2 valores ausentes.
Sempre verifique a presença de dados ausentes e aplique adequadamente as técnicas de imputação, garantindo que todos os casos extremos sejam bem tratados.
Entenda por que os dados estão faltando e escolha um método apropriado para lidar com eles: remoção ou imputação.
Para uma abordagem estruturada da análise de dados e do manuseio de valores ausentes, o Limpeza de dados em Rpode ser um ótimo recurso.
Conclusão
Entender e usar o site na.rm é fundamental para garantir uma análise de dados confiável e precisa. Pratique o uso do na.rm em projetos do R e explore técnicas avançadas para lidar com dados ausentes de forma abrangente.
Para aprender mais, explore estes recursos adicionais:
Limpeza de dados: Aprimore suas habilidades de análise de dados com nosso curso Limpeza de dados em R.
Introdução ao R: Você pode começar a programar em R com o nosso cursoIntroduction to R.
Manipulação de dados: Aprimore suas técnicas de transformação de dados com nosso curso Data Manipulation with dplyr.
Análise de regressão: Mergulhe nas técnicas de regressão e aprenda estatística com nosso cursoIntroduction to Regression in R.
Perguntas frequentes
O que é o parâmetro na.rm no R?⌄
O parâmetro na.rm no R significa "NA remove". Quando definido como TRUE, instrui as funções a ignorar os valores NA (ausentes) durante os cálculos, garantindo resultados precisos.
Como você usa o na.rm em funções comuns do R?⌄
Você pode usar na.rm em funções como sum(), mean(), sd(), min(), max() e median() definindo na.rm = TRUE para excluir valores ausentes dos cálculos.
Por que é importante lidar com valores ausentes na análise de dados?⌄
Os valores ausentes podem distorcer os resultados e levar a conclusões imprecisas. O manuseio eficaz dessas informações garante cálculos confiáveis e mantém a integridade dos dados.
O na.rm pode ser usado com quadros de dados e listas no R?⌄
Sim, o na.rm pode ser usado com estruturas de dados usando funções como apply() e com listas usando lapply() e sapply() para excluir valores ausentes durante as operações nessas estruturas de dados.
Quais são algumas técnicas avançadas para lidar com valores ausentes no R?⌄
Além de na.rm, as técnicas avançadas incluem o uso de is.na() para identificar valores ausentes, aplicar métodos de imputação para substituí-los e aproveitar funções como na.omit() e complete.cases() para limpeza de dados mais complexa.
Dá uma olhada em 4 maneiras de detectar valores NaN em Python, usando NumPy e Pandas. Aprenda as principais diferenças entre NaN e None para limpar e analisar dados de forma eficiente.
Explore as expressões regulares no R, por que elas são importantes, as ferramentas e funções para trabalhar com elas, os padrões comuns de regex e como usá-las.
Os dados estão sendo gerados e consumidos em um ritmo industrial para orientar as principais decisões de negócios. No entanto, um desafio comum na análise de dados é a presença de valores ausentes. Isso pode distorcer os resultados, tornando inevitável para qualquer analista de dados lidar com eles de forma eficaz. No R, uma das ferramentas fundamentais para gerenciar valores ausentes é o parâmetro
na.rm.Esta publicação explica a importância de lidar com dados ausentes, como funciona o
na.rmno R, demonstra seu uso em várias funções e conclui com a discussão de algumas técnicas alternativas para identificar e lidar com dados ausentes.A resposta curta: O que é na.rm?
O parâmetro
na.rmno R significa "NA remove" e ignora os valoresNA(ausentes) durante os cálculos. Ao definirna.rm = TRUE, funções comomean(),sum(),min(),max(),median()esd()calculam os resultados sem serem afetadas por valores ausentes.O parâmetro
na.rm, escrito em letras minúsculas, inclui um valor booleano:TRUEouFALSE. Quando definimosna.rm = TRUE, o R exclui os valores deNAdos cálculos. Sem esse parâmetro, as funções retornariamNAse houvesse valores ausentes nos dados. Dê uma olhada.Confira o curso Introdução ao R para saber mais sobre a programação básica do R.
Por que usar a na.rm?
O tratamento de valores ausentes é crucial na análise de dados para garantir resultados precisos, pois eles podem afetar significativamente os cálculos estatísticos, levando inadvertidamente a conclusões incorretas. O uso do site
na.rmtorna conveniente evitar erros ignorando esses valores ausentes, realizando assim cálculos confiáveis e mantendo a integridade dos dados.O curso Data Cleaning in R (Limpeza de dados em R ) é valioso para aprimorar nossas habilidades de análise de dados.
Funções comuns usando na.rm: Alguns exemplos práticos
Agora, vamos entender como você pode usar o
na.rmno R. Várias funções do R incorporam o parâmetrona.rm(definido comoFALSEpor padrão). Aqui estão alguns exemplos comuns:sum()
Como o nome sugere, o
sum()calcula o total de valores em um vetor. Vamos criar um vetor chamadovector_with_na, que usaremos ao longo deste tutorial.mean()
Usando o mesmo exemplo, a função
mean()calcula a média, ou seja, a média dos valores em nosso vetor.sd()
Continuando com
vector_with_na, osd()calcula o desvio padrão do vetor.min()
O site
min()encontra o valor mínimo.max()
max()encontra o valor máximo.median()
median()encontra o valor intermediário quando organizado em ordem.Observe que, na ausência de
na.rm = TRUE, todas essas funções agregadas retornamNA.Ao definir
na.rm = TRUE, essas funções excluem os valores deNA, o que resulta em cálculos precisos e significativos. O programa de habilidades R Programming Fundamentals pode ser um bom recurso para você entender melhor o uso e a sintaxe dessas funções.Manipulação de valores ausentes em diferentes estruturas de dados
Vamos dar uma olhada em como lidar com valores ausentes em diferentes estruturas de dados. Antes de continuarmos, confira nosso artigo Como dominar as estruturas de dados na linguagem de programação R se você quiser saber mais sobre as estruturas de dados do R.
Vetores
Em vetores, o
na.rmpode ser usado diretamente nas funções para excluir valores ausentes. Os exemplos compartilhados na seção anterior são todos exemplos dena.rmem ação em vetores.Quadros de dados
Para quadros de dados, o
na.rmpode ser aplicado dentro de funções usadas em colunas específicas ou em linhas usando oapply(), conforme mostrado abaixo:Aqui:
X: uma matriz, quadro de dados ou matrizMARGINArgumento para identificar onde aplicar a função:MARGIN=1para manipulação de linhasMARGIN=2para manipulação de colunasMARGIN=c(1,2)para manipulação de linhas e colunasFUN: informa qual função você deve aplicar. Você pode aplicar funções integradas, comomean(),median(),sum(),min(),max(), e funções definidas pelo usuário.Vamos criar um quadro de dados para nossa referência ao longo deste tutorial.
Listas
A função
lapply()no R é usada para aplicar uma função especificada a cada elemento de uma lista, vetor ou quadro de dados e retorna uma lista com o mesmo comprimento. Essa função não requer um parâmetroMARGIN, pois aplica automaticamente a operação a todos os elementos.Syntax:
Aqui:
: A lista, o vetor ou o quadro de dados de entrada.vector_with_nafun: A função a ser aplicada a cada elemento de dados de entrada.Vamos entender
lapply()usando um exemplo de lista. Aqui temos uma lista de coleções (item_1eitem_2) com elementos semelhantes ao quadro de dados (dataframe_with_na). Nosso objetivo é encontrar a média de cada coleção.A função
sapply()é semelhante àlapply(), mas retorna um array ou matriz em vez de uma lista. Vamos usar a lista (list_with_na) e osapply()para calcular a média dos valores de cada coleção dentro dela.Agora, vamos usar o quadro de dados (
dataframe_with_na) e osapply()para calcular a soma dos valores de cada coluna.Para que você tenha uma compreensão mais ampla da manipulação de dados em R, o curso Manipulação de dados com dplyr é altamente recomendado. Se você se sentir inseguro em relação à família de funções apply() especificamente, leia nosso tutorial sobre a família Apply do R.
Comparação com na.omit() e complete.cases()
na.omit(): Essa função remove todas as linhas que contêm valoresNAem um quadro de dados. Vamos entender isso com um exemplo:complete.cases(): Por outro lado,complete.cases()identifica as linhas sem nenhum valorNAe retorna um bool correspondente a cada linha (FALSEpara linhas comNAe vice-versa). Isso pode ser usado para filtrar os valores que não estão faltando no quadro de dados, conforme mostrado abaixo.Técnicas avançadas para lidar com valores ausentes
Além do
na.rm, o R oferece métodos avançados para lidar com dados ausentes:Usando is.na() para identificar valores ausentes
is.na()pode ser aplicado diretamente em um vetor ou quadro de dados para identificar dados ausentes. Ele retorna umTRUEcorrespondente a cada valor ausente.Aplicação de métodos de imputação
A imputação substitui os valores ausentes por valores estimados, como a média ou a mediana, conforme mostrado abaixo:
Usando a função summary()
É interessante notar que a função
summary()é diferente de usarna.rmpara lidar com valores ausentes. Por padrão, o sitesummary()exclui automaticamente os valores ausentes ao calcular as estatísticas resumidas e, posteriormente, informa o número deNAs presentes nos dados.Vamos executar
summary()no vetorvector_with_na:E no quadro de dados
dataframe_with_na:O curso Intermediate R oferece insights aprofundados para os interessados em técnicas mais avançadas de manipulação de dados.
Práticas recomendadas para lidar com valores ausentes
O tratamento eficaz de valores ausentes envolve várias práticas recomendadas:
Sempre verifique se há valores ausentes
Identificar e compreender a extensão dos dados ausentes antes de realizar os cálculos. O exemplo abaixo mostra que o quadro de dados tem um total de 2 valores ausentes.
Use verificações condicionais
Sempre verifique a presença de dados ausentes e aplique adequadamente as técnicas de imputação, garantindo que todos os casos extremos sejam bem tratados.
Considere o contexto
Entenda por que os dados estão faltando e escolha um método apropriado para lidar com eles: remoção ou imputação.
Para uma abordagem estruturada da análise de dados e do manuseio de valores ausentes, o Limpeza de dados em R pode ser um ótimo recurso.
Conclusão
Entender e usar o site
na.rmé fundamental para garantir uma análise de dados confiável e precisa. Pratique o uso dona.rmem projetos do R e explore técnicas avançadas para lidar com dados ausentes de forma abrangente.Para aprender mais, explore estes recursos adicionais: