durch3-durch5

R
challenge
string
Published

June 27, 2023

Aufgabe

Gegeben sei ein Vektor x:

x <- 1:50

Schreiben Sie R-Code, der “durch3” ausgibt, wenn x durch 3 teilbar ist und (auch) “durch5” ausgibt, wenn x durch5 teilbar ist.

Hinweise:











Lösung

library(tidyverse)
d <-
  tibble(
    x = 1:50,
    txt = ""
  ) %>% 
  mutate(txt = case_when(
    (x %% 3) == 0 ~ str_c(txt, "_durch_3"),
    TRUE ~ txt)
  ) %>% 
  mutate(txt = case_when(
    (x %% 5) == 0 ~ str_c(txt, "_durch_5"),
    TRUE ~ txt
  ))

So sieht die Tabelle aus:

d
x txt
1
2
3 _durch_3
4
5 _durch_5
6 _durch_3
7
8
9 _durch_3
10 _durch_5
11
12 _durch_3
13
14
15 _durch_3_durch_5
16
17
18 _durch_3
19
20 _durch_5
21 _durch_3
22
23
24 _durch_3
25 _durch_5
26
27 _durch_3
28
29
30 _durch_3_durch_5
31
32
33 _durch_3
34
35 _durch_5
36 _durch_3
37
38
39 _durch_3
40 _durch_5
41
42 _durch_3
43
44
45 _durch_3_durch_5
46
47
48 _durch_3
49
50 _durch_5

So kann man sich dann den Text ausgeben lassen:

d$txt
 [1] ""                 ""                 "_durch_3"         ""                
 [5] "_durch_5"         "_durch_3"         ""                 ""                
 [9] "_durch_3"         "_durch_5"         ""                 "_durch_3"        
[13] ""                 ""                 "_durch_3_durch_5" ""                
[17] ""                 "_durch_3"         ""                 "_durch_5"        
[21] "_durch_3"         ""                 ""                 "_durch_3"        
[25] "_durch_5"         ""                 "_durch_3"         ""                
[29] ""                 "_durch_3_durch_5" ""                 ""                
[33] "_durch_3"         ""                 "_durch_5"         "_durch_3"        
[37] ""                 ""                 "_durch_3"         "_durch_5"        
[41] ""                 "_durch_3"         ""                 ""                
[45] "_durch_3_durch_5" ""                 ""                 "_durch_3"        
[49] ""                 "_durch_5"        

Oder so:

d$txt %>% discard(\(x) x == "")
 [1] "_durch_3"         "_durch_5"         "_durch_3"         "_durch_3"        
 [5] "_durch_5"         "_durch_3"         "_durch_3_durch_5" "_durch_3"        
 [9] "_durch_5"         "_durch_3"         "_durch_3"         "_durch_5"        
[13] "_durch_3"         "_durch_3_durch_5" "_durch_3"         "_durch_5"        
[17] "_durch_3"         "_durch_3"         "_durch_5"         "_durch_3"        
[21] "_durch_3_durch_5" "_durch_3"         "_durch_5"        

Categories:

  • r
  • challenge
  • string