Symulowanie danych z wieloma wejściami przy użyciu map2()
Funkcja map() sprawdza się świetnie, gdy musisz iterować po jednej liście. Często jednak zachodzi potrzeba iterowania po dwóch listach jednocześnie – właśnie do tego służy map2(). O ile map() przyjmuje listę jako argument .x, o tyle map2() przyjmuje dwie listy jako dwa osobne argumenty: .x i .y.
Aby przetestować map2(), stworzysz prosty zbiór danych: jedną listę liczb i jedną listę ciągów znaków. Następnie połączysz te dwie listy i wygenerujesz symulowane dane.
To ćwiczenie jest częścią kursu
Podstawy programowania funkcyjnego z purrr
Instrukcje do ćwiczenia
- Utwórz listę
meanszawierającą wartości od 1 do 3, każdą jako osobny element. - Utwórz listę
sitesz wartościami "north", "west" i "east". - Użyj
map2()na listachsitesimeans, aby utworzyć ramkę danych z dwiema kolumnami.- Pierwsza kolumna to
sites; druga kolumna jest generowana przezrnorm()z parametremmeanpobranym z listymeans.
- Pierwsza kolumna to
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# List of 1, 2 and 3
means <- list(___)
# Create sites list
sites <- list(___)
# Map over two arguments: sites and means
list_of_files_map2 <- map2(___, ___, ~___(sites = ___,
a = rnorm(mean = ___, n = 200, sd = (5/2))))
list_of_files_map2