2.10 Create labels - paste()
The paste()
function is used to add characters together.
It also works with numbers and dates which will automatically be converted to characters before being pasted together into a single label.
See this example where we use all variables from typesdata
to create a new column called plot_label
(we select()
for printing space):
typesdata %>%
mutate(plot_label = paste(id,
"was last measured at", date,
", and the value was", measurement)) %>%
select(plot_label)
## # A tibble: 3 x 1
## plot_label
## <chr>
## 1 ID1 was last measured at 2017-01-02 12:00:00 , and the value was 1.8
## 2 ID2 was last measured at 2018-02-03 13:00:00 , and the value was 4.5
## 3 ID3 was last measured at 2019-03-04 14:00:00 , and the value was 3.7
The paste is also useful when pieces of information are stored in different columns. For example, consider this made-up tibble:
pastedata <- tibble(year = c(2007, 2008, 2009),
month = c("Jan", "Feb", "March"),
day = c(1, 2, 3))
pastedata
## # A tibble: 3 x 3
## year month day
## <dbl> <chr> <dbl>
## 1 2007 Jan 1
## 2 2008 Feb 2
## 3 2009 March 3
We can use paste()
to combine these into a single column:
## # A tibble: 3 x 4
## year month day date
## <dbl> <chr> <dbl> <chr>
## 1 2007 Jan 1 1-Jan-2007
## 2 2008 Feb 2 2-Feb-2008
## 3 2009 March 3 3-March-2009
By default, paste()
adds a space between each value, but we can use the sep =
argument to specify a different separator.
Sometimes it is useful to use paste0()
which does not add anything between the values (no space, no dash, etc.).
We can now tell R that the date column should be parsed as such:
library(lubridate)
pastedata %>%
mutate(date = paste(day, month, year, sep = "-")) %>%
mutate(date = dmy(date))
## # A tibble: 3 x 4
## year month day date
## <dbl> <chr> <dbl> <date>
## 1 2007 Jan 1 2007-01-01
## 2 2008 Feb 2 2008-02-02
## 3 2009 March 3 2009-03-03