ComeçarComece de graça

Aplicar funções que retornam NULL

Em todos os exercícios anteriores, presumiu-se que as funções que foram aplicadas sobre vetores e listas realmente retornaram um resultado significativo. Por exemplo, a função tolower() simplesmente retorna as cadeias de caracteres com os caracteres em minúsculas. Esse nem sempre será o caso. Suponha que você queira exibir a estrutura de cada elemento de uma lista. Você poderia usar a função str() para isso, que retorna NULL:

lapply(list(1, "a", TRUE), str)

Na verdade, essa chamada retorna uma lista, com o mesmo tamanho da lista de entrada, contendo todos os valores de NULL. Por outro lado, chamando

str(TRUE)

por si só imprime apenas a estrutura da lógica no console, e não NULL. Isso se deve ao fato de que str() usa invisible() nos bastidores, que retorna uma cópia invisível do valor de retorno, NULL nesse caso. Isso evita que ele seja impresso quando o resultado de str() não for atribuído.

O que o seguinte trecho de código retornará (split_low já está disponível no espaço de trabalho)? Tente raciocinar sobre o resultado antes de simplesmente executá-lo no console!

lapply(split_low, function(x) {
  if (nchar(x[1]) > 5) {
    return(NULL)
  } else {
    return(x[2])
  }
})

Este exercício faz parte do curso

R intermediário

Ver curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Começar o exercício