meses <- "janeiro"
meses
[1] "janeiro"
Quando finalizar este capítulo, deverá ser capaz de:
Em estatística, trabalhamos a maior parte das vezes com dados numéricos, no entanto, frequentemente, também trabalhamos com outro tipo de dados, como os dados textuais. É possível guardar dados textuais num objeto:
meses <- "janeiro"
meses
[1] "janeiro"
Neste caso, guardamos a palavra janeiro
no objeto meses
. Notes que as aspas ("
) são utilizadas e necessárias para que o R saiba que deve tratar a palavra janeiro
como texto (ou, em linguagem formal, como uma character string
). Se não fossem utilizadas aspas:
meses <- janeiro
Error: object ‘janeiro’ not found
As mensagens de erro no R têm, habitualmente, informação útil para compreender o erro ou problema encontrado. Neste caso, a mensagem Error: object ‘janeiro’ not found"
indica que o objeto janeiro
não foi encontrado. Mas por que é que o R tentou encontrar o objeto janeiro
, se estávamos a criar um objeto meses
? Porque, como não utilizamos aspas ("
) para indicar que janeiro
era uma character string, o R assumiu que janeiro
era o nome de um objeto. Como não existe nenhum objeto chamado janeiro
, obtivemos a mensagem de erro.
Para o R saber que determinado valor deve ser interpretado como uma character string, isto é, como texto, esse valor deve estar entre aspas. É possível utilizar utilizar aspas duplas ("janeiro"
) ou simples (´janeiro´
), mas não aspas angulares («janeiro»
), acentos (´janeiro´
) ou plicas (‘janeiro’
).
Do mesmo modo, é possível criar vetores de dados textuais, de forma análoga, utilizando a função c()
:
Note que não é possível fazer operações aritméticas com dados textuais:
a <- "2"
b <- "3"
a+b
Error in a + b : non-numeric argument to binary operator
Neste exemplo, quer o objeto a
quer o objeto b
contêm dados textuais (character string), uma vez que os valores introduzidos se encontram entre aspas, o que indica ao R que são dados de texto (ao invés de valores numéricos ou outros). Assim sendo, quando tenta somar os dois objetos, obtém uma mensagem de erro que lhe indica que foi utilizado um argumento não numérico. De facto, para o R, fazer "2" + "3"
é o mesmo que fazer "maçãs" + "pêras"
!
Os vetores apenas podem conter um tipo de dado. Por exemplo:
meses <- c("janeiro", "fevereiro", 3)
meses
[1] "janeiro" "fevereiro" "3"
Note que, embora tenhamos tentado criar um vetor com dados de texto ("janeiro"
, "fevereiro"
) e numéricos (3
- note a ausência de aspas), quando chamamos o objeto meses
, todos os dados são textuais (note as aspas em "3"
).
Isto acontece porque os vetores apenas permitem acomodar dados do mesmo tipo. Caso existam dados de tipos diferentes, o R converte os dados para o mesmo tipo (tipicamente, para o tipo textual/character string).
Para referência futura, saiba que é possível ter dados de tipos diferentes num mesmo objeto, através de listas.
meses <- list("janeiro", "fevereiro", 3)
meses
[[1]]
[1] "janeiro"
[[2]]
[1] "fevereiro"
[[3]]
[1] 3
Saiba ainda que, para além dos dados numéricos e de texto, são possíveis outros tipos de dados em R. Por exemplo, os dados lógicos:
verdade_ou_mentira <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE)
verdade_ou_mentira
[1] TRUE TRUE TRUE FALSE TRUE FALSE FALSE
Note que as palavras TRUE
e FALSE
não se encontram entre aspas, pelo que não são dados de texto. Por motivos que extravasam o âmbito desta unidade curricular, o R tem valores especiais para estes.
É útil saber que TRUE
e T
são equivalentes, assim como FALSE
e F
são equivalentes.