purrr-map01

R
map
tidyverse
Published

October 24, 2022

library(tidyverse)

Exercise

Erstellen Sie einen Tibble mit folgenden Spalten:

  1. Buchstaben A-Z, so dass in der 1. Zeile “A” steht, in der 2. Zeile “B” etc.
  2. Buchstaben a-z, so dass in der 1. Zeile “a” steht, in der 2. Zeile “b” etc.
  3. Buchstabenkombination der ersten beiden Spalten, so dass in der 1. Zeile “A-a” steht, in der 2. Zeile “B-b” etc.











Solution

Geht es vielleicht so?

d <-
  tibble(
    letter1 = LETTERS,
    letter2 = letters,
    letters = paste(letter1, letter2, collapse = "-")
  )

head(d)
letter1 letter2 letters
A a A a-B b-C c-D d-E e-F f-G g-H h-I i-J j-K k-L l-M m-N n-O o-P p-Q q-R r-S s-T t-U u-V v-W w-X x-Y y-Z z
B b A a-B b-C c-D d-E e-F f-G g-H h-I i-J j-K k-L l-M m-N n-O o-P p-Q q-R r-S s-T t-U u-V v-W w-X x-Y y-Z z
C c A a-B b-C c-D d-E e-F f-G g-H h-I i-J j-K k-L l-M m-N n-O o-P p-Q q-R r-S s-T t-U u-V v-W w-X x-Y y-Z z
D d A a-B b-C c-D d-E e-F f-G g-H h-I i-J j-K k-L l-M m-N n-O o-P p-Q q-R r-S s-T t-U u-V v-W w-X x-Y y-Z z
E e A a-B b-C c-D d-E e-F f-G g-H h-I i-J j-K k-L l-M m-N n-O o-P p-Q q-R r-S s-T t-U u-V v-W w-X x-Y y-Z z
F f A a-B b-C c-D d-E e-F f-G g-H h-I i-J j-K k-L l-M m-N n-O o-P p-Q q-R r-S s-T t-U u-V v-W w-X x-Y y-Z z

Nein, leider nicht.

OK, neuer Versuch:

d <-
  tibble(
    letter1 = LETTERS,
    letter2 = letters) %>% 
  unite("letters", c(letter1, letter2), remove = FALSE)


head(d)
letters letter1 letter2
A_a A a
B_b B b
C_c C c
D_d D d
E_e E e
F_f F f

Probieren wir es mit purrr::map():

d <-
  tibble(
    letter1 = LETTERS,
    letter2 = letters,
    letters = map2_chr(letter1, letter2, ~ paste(c(.x, .y), collapse ="-"))
  )

head(d)
letter1 letter2 letters
A a A-a
B b B-b
C c C-c
D d D-d
E e E-e
F f F-f

Infos zur Funktion paste() findet sich z.B. hier.


Categories:

  • R
  • map
  • tidyverse