Acessando Elementos de Listas
Parte da seção Fundamentos do Journey de R da Coddy. Lição 72 de 78.
Listas usam uma sintaxe diferente para acessar elementos em comparação com vetores. A principal diferença está entre colchetes simples [ ] e colchetes duplos [[ ]].
Colchetes duplos extraem o elemento real da lista:
my_list <- list(42, "hello", TRUE)
print(my_list[[1]])Saída:
[1] 42Colchetes simples retornam uma sublista contendo o elemento, não o elemento em si:
my_list <- list(42, "hello", TRUE)
print(my_list[1])Saída:
[[1]]
[1] 42Essa distinção é importante quando você deseja trabalhar com o valor real. Se um elemento da lista for um vetor, os colchetes duplos permitem acessá-lo diretamente e, em seguida, usar a indexação de vetor:
my_list <- list(c(10, 20, 30), "text")
print(my_list[[1]][2])Saída:
[1] 20Aqui, my_list[[1]] recupera o vetor, e [2] acessa seu segundo elemento. Lembre-se: use [[ ]] quando precisar do conteúdo real, e [ ] quando quiser uma lista menor.
Desafio
FácilVocê receberá duas linhas de entrada:
- Três valores separados por vírgulas de tipos diferentes (por exemplo,
100,hello,TRUE) - Uma lista de números separada por vírgulas que representa um vetor a ser armazenado como o quarto elemento (por exemplo,
5,10,15,20)
Realize as seguintes operações:
- Crie uma lista com quatro elementos: o valor numérico, o texto, o valor lógico e o vetor de números
- Use colchetes duplos para extrair e imprimir o segundo elemento (o valor de texto)
- Use colchetes simples para extrair o terceiro elemento e imprimir o resultado (observe a diferença no formato da saída)
- Acesse o vetor armazenado no quarto elemento usando colchetes duplos; em seguida, extraia e imprima seu terceiro valor usando a indexação de vetores
- Imprima a soma de todos os números do quarto elemento (acesse o vetor com colchetes duplos e use
sum())
Por exemplo, se as entradas forem:
42,world,FALSE
8,16,24,32,40A saída deverá ser:
[1] "world"
[[1]]
[1] FALSE
[1] 24
[1] 120Explicação:
my_list[[2]]extrai o valor de texto propriamente dito: "world"my_list[3]retorna uma sublista contendo FALSE (observe o[[1]]na saída)my_list[[4]][3]acessa o vetor e, em seguida, obtém seu terceiro elemento: 24sum(my_list[[4]])calcula 8+16+24+32+40 = 120
Experimente você mesmo
# Ler a entrada
con <- file("stdin", "r")
input1 <- suppressWarnings(readLines(con, n = 1)) # Primeira linha: três valores separados por vírgula
input2 <- suppressWarnings(readLines(con, n = 1)) # Segunda linha: números separados por vírgula para o vetor
close(con)
# Analisar a primeira linha de entrada em valores separados
values <- strsplit(input1, ",")[[1]]
numeric_val <- as.numeric(values[1])
text_val <- values[2]
logical_val <- as.logical(values[3])
# Analisar a segunda linha de entrada em um vetor numérico
vector_val <- as.numeric(strsplit(input2, ",")[[1]])
# TODO: Escreva seu código abaixo
# 1. Crie uma lista com quatro elementos: numeric_val, text_val, logical_val e vector_val
# 2. Use colchetes duplos [[ ]] para extrair e imprimir o segundo elemento
# 3. Use colchetes simples [ ] para extrair o terceiro elemento e imprimi-lo
# 4. Acesse o quarto elemento com colchetes duplos e, em seguida, extraia seu terceiro valor
# 5. Imprima a soma de todos os números no quarto elementoEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores - Parte 2
Operadores lógicos (AND, OR)Operadores lógicos - Parte 2 (NOT)Revisão - Lógica simplesLógica vetorizada - Parte 1Lógica vetorizada - Parte 27Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços
Laço ForLaço WhileBreakNext (Continue)Revisão - FatorialGeração de Sequências (seq, :)Laços AninhadosRevisão - Entrada Dinâmica11Vetores
Criando vetores com c()Acessando elementos de vetoresModificando vetoresOperações com vetoresRevisão - Vetor de preçosRevisão - Vetor invertidoVetores nomeados14Listas em R
Criando ListasAcessando Elementos de ListasModificando ListasListas NomeadasRecapitulação - Lista de Produtos3Operadores - Parte 1
Operadores aritméticosDivisão inteira e móduloOperadores de atribuiçãoRevisão - Matemática simplesOperadores de comparação6Entrada e saída básicas
Imprimir saídacat para saídaSaída com variáveisLendo entrada com readline()Noções básicas de conversão de tiposRecapitulação - Calculadora de idadeRecapitulação - Verdadeiro ou falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetros PadrãoPratique por conta própria: Compilador de R online