По запросу API возвращается больше информации, чем показано на скриншоте таблицы, но я сосредоточился на том, чтобы просто вернуть таблицу, аналогичную структуре примера. Если вам нужна дополнительная информация, такая как направление ветра, она имеет другую структуру и может быть проще разобрать по отдельности и объединить.
library(jsonlite)
library(purrr)
library(dplyr)
library(tidyr)
req <- "https://api.nasa.gov/insight_weather/?api_key=DEMO_KEY&feedtype=json&ver=1.0"
mars <- fromJSON(req)
map(mars[1:7], ~unlist(.x[1:6]) %>%
bind_rows) %>%
bind_rows(.id = "day") %>%
pivot_longer(cols = grep("\\.", names(.)), names_sep = "\\.", names_to = c(".value", "var"))
# A tibble: 28 x 8
day First_UTC Last_UTC Season var AT HWS PRE
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer av -65.475 5.364 637.752
2 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer ct 178174 79226 89083
3 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer mn -100.044 0.236 618.015
4 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer mx -16.815 21.146 653.7326
5 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer av -62.449 5.683 636.87
6 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer ct 211897 95539 105800
7 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer mn -101.272 0.205 618.1757
8 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer mx -16.931 20.986 653.4973
9 404 2020-01-15T07:44:09Z 2020-01-16T08:23:44Z summer av -63.622 5.303 636.148
10 404 2020-01-15T07:44:09Z 2020-01-16T08:23:44Z summer ct 293286 132690 158958
# … with 18 more rows