R Academy · Aula

Vetores e sequências nomeados

Atribua e acesse nomes em vetores para obter um código legível.

Aula 4 de 413 etapas

Vetores e sequências nomeados é uma aula grátis de R Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de R Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de R Academy inclui 4 aulas no total.

Introdução aos vetores nomeados

Um vetor nomeado é um vetor em que cada elemento tem um nome associado (um rótulo de caracteres). Os nomes tornam o código mais legível e permitem acessar os elementos pelo nome em vez do índice de posição.

# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)

cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)

Criando vetores nomeados com c()

A maneira mais simples de criar um vetor nomeado é usar pares name = value dentro de c(). Os nomes podem ser qualquer cadeia de caracteres válida; se contiverem espaços ou caracteres especiais, coloque-os entre crases ou aspas.

# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
         Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')

A função names()

names(x) obtém os nomes de um vetor como um vetor de caracteres. Você também pode atribuir nomes depois da criação usando names(x) <- c(...), o que modifica o vetor no próprio lugar.

# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')

names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)

# Retrieve names
cat('Days:', names(temps), '
')

Acessando elementos pelo nome

Acesse elementos de um vetor nomeado usando x["name"] ou x[["name"]]. Os colchetes simples [] retornam um subconjunto nomeado; [[]] retorna apenas o valor, sem o nome.

scores <- c(Math = 88, Science = 92, English = 75, History = 81)

# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])

# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')

# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])

setNames() no estilo funcional

setNames(x, nm) retorna uma cópia de x com os nomes definidos como nm, sem modificar o original. Isso é útil em pipelines quando você quer nomear um vetor como parte de uma cadeia de operações.

# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))

cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)

# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')

Modificando nomes

Você pode alterar nomes individuais indexando names(x). Isso é útil quando precisa renomear um subconjunto de elementos sem recriar o vetor inteiro.

prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50)  # typo!

# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)

# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry')  # capitalise
cat('Capitalised:
')
print(prices)

Sequências nomeadas com seq() e names()

Você pode criar uma sequência nomeada combinando seq() com setNames(). Isso é especialmente útil para índices mensais ou semanais, nos quais os nomes acrescentam contexto aos valores numéricos.

# Monthly average temperature with names
temps_monthly <- setNames(
  c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
  month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')

Filtrando vetores nomeados

Vetores nomeados aceitam indexação lógica e por caracteres. Você pode selecionar elementos pelo nome e filtrá-los pelo valor ao mesmo tempo, tornando os vetores nomeados muito expressivos para pequenas tabelas de consulta.

population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
                Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)

# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)

# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))

Removendo nomes com unname()

unname(x) remove todos os nomes de um vetor, retornando apenas os valores. Isso é útil ao passar dados para funções que não esperam vetores nomeados ou quando os nomes poluem visualmente a saída.

named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)

unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)

# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')

Vetores nomeados como tabelas de consulta

Um dos usos mais poderosos dos vetores nomeados é como tabela de consulta: mapear chaves para valores. Em vez de uma cadeia de instruções if-else, use um vetor nomeado e faça uma indexação nele.

# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
                   Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
                   Nov=30, Dec=31)

# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')

Vetores nomeados: informações essenciais

Resumo dos recursos dos vetores nomeados em R:

  • Crie com c(name = value, ...) ou atribua por meio de names(x) <- c(...)
  • Acesse pelo nome com x['name'] (mantém o nome) ou x[['name']] (somente o valor)
  • setNames(x, nm) retorna uma cópia nomeada sem modificar o original
  • unname(x) remove todos os nomes
  • Vetores nomeados funcionam como tabelas de consulta elegantes (substituindo cadeias de if-else)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)

# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))

Verificação rápida

Qual é a diferença entre x['key'] e x[['key']] quando x é um vetor nomeado?

Recapitulação: vetores nomeados

Excelente trabalho! Veja os principais aprendizados desta lição:

  • Vetores nomeados associam cada elemento a um rótulo de caracteres
  • Crie com a sintaxe c(name = val) ou atribua com names(x) <- ...
  • x['name'] retorna um subconjunto nomeado; x[['name']] retorna apenas o valor
  • setNames() é a forma funcional (sem modificar o vetor) de associar nomes
  • Use vetores nomeados como tabelas de consulta para substituir cadeias extensas de if-else
  • unname() remove os nomes quando são necessários apenas os valores brutos
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80

# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')
Grátis para começar

Aprenda R com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
43
Aulas
159

Perguntas Frequentes

A aula “Vetores e sequências nomeados” é grátis?

Sim — o texto completo de “Vetores e sequências nomeados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de R Academy, atualize para CoddyKit PRO. O curso de R Academy inclui 4 aulas no total.

O que vou aprender em “Vetores e sequências nomeados”?

Atribua e acesse nomes em vetores para obter um código legível. Você pratica R Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar R Academy?

Nenhuma experiência prévia é necessária. R Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Vetores e sequências nomeados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de R Academy?

Sim. Cada aula de R Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O operador de dois-pontos para intervalos de inteiros
  2. seq() para sequências personalizadas
  3. rep() para valores repetidos
  4. Vetores e sequências nomeados
← Voltar para R Academy