Добавить столбец в функцию вывода - PullRequest
0 голосов
/ 06 мая 2018

Я борюсь со следующим, надеюсь, вы поможете мне в этом.

Я использую функцию, чтобы получить все данные диаграммы из Spotify для диапазона дат. Однако выходные данные функции не сообщают вам, какой день связан с возвращаемыми 200 треками. Я попытался добавить столбцы, но из-за того, что длина выходных данных функции и начальные дни различаются, это, похоже, не работает

datums <- seq(as.Date('2018-04-01'),as.Date('2018-05-05'),by = 1)
dates <- list(datums)

country <- rep(c('nl'), each = 30)


chart <- purrr::map2_df(country, dates, ~ spotifycharts::chart_top200_daily(.x, .y))

Вывод дает вам:

position track.name    artist          streams url                                                  
      <int> <chr>         <chr>             <int> <chr>                                                
 1        1 Sofiane       Boef             299735 https://open.spotify.com/track/7aK0LpCyxzN5K9pAP20MVC
 2        2 Beetje Moe    Kevin            220181 https://open.spotify.com/track/5ncYmvTAX7RbJSvoFGrSkv
 3        3 Lil Craney    Kraantje Pappie  185912 https://open.spotify.com/track/6mhojtIauujcoXxlGsihh1
 4        4 Drip          SFB              171255 https://open.spotify.com/track/7ulH79Yk90PkLsEjYjVyif
 5        5 God's Plan    Drake            158205 https://open.spotify.com/track/2XW4DbS6NddZxRPm5rMCeY

(каждый день возвращает 200 треков)

Я хочу добавить дату в диаграмме и код страны.

Я довольно новичок в R, поэтому извиняюсь за вопрос новичка - тоже попытался найти решение, но, похоже, ничего не работает.

Очень ценится!

1 Ответ

0 голосов
/ 06 мая 2018

Вы можете упростить несколько вещей. Ваши даты не должны быть списком - вектор дат будет достаточен для map_df. Вам также не нужен список или вектор названий стран, если страна остается прежней. Внутри функции, которую использует map, вы получаете фрейм данных от chart_top200_daily, для которого вы можете вызвать mutate, чтобы добавить столбец даты.

library(tidyverse)
library(spotifycharts)

datums <- seq(as.Date('2018-04-01'), as.Date('2018-05-05'), by = 1)
# dates <- list(datums)

chart <- map_df(datums, function(date) {
    chart_top200_daily("nl", date) %>%
        mutate(date = date)
})

chart
#> # A tibble: 7,000 x 6
#>    position track.name    artist          streams url           date      
#>       <int> <chr>         <chr>             <int> <chr>         <date>    
#>  1        1 Sofiane       Boef             299735 https://open… 2018-04-01
#>  2        2 Beetje Moe    Kevin            220181 https://open… 2018-04-01
#>  3        3 Lil Craney    Kraantje Pappie  185912 https://open… 2018-04-01
#>  4        4 Drip          SFB              171255 https://open… 2018-04-01
#>  5        5 God's Plan    Drake            158205 https://open… 2018-04-01
#>  6        6 Ze Willen Mee Hardwell         154086 https://open… 2018-04-01
#>  7        7 Catch Up      Josylvio         142023 https://open… 2018-04-01
#>  8        8 FRIENDS       Marshmello       140276 https://open… 2018-04-01
#>  9        9 Non Stop      Ronnie Flex      139419 https://open… 2018-04-01
#> 10       10 Fan           Ronnie Flex      132936 https://open… 2018-04-01
#> # ... with 6,990 more rows

Создано в 2018-05-06 пакетом Представить (v0.2.0).

...