R JSON-файл

JSON: JavaScript Object NJSON (JavaScript Object Notation).

JSON — это синтаксис для хранения и обмена текстовой информацией.

JSON похож на XML, но он меньше, быстрее и проще для разбора, чем XML.

Если вы ещё не знакомы с JSON, для начала можете обратиться к:Учебник по JSON

Для чтения и записи JSON-файлов в R необходимо установить пакет расширения. Вы можете установить его, введя следующую команду в консоли R:

install.packages("rjson", repos = "https://mirrors.ustc.edu.cn/CRAN/")

Проверьте, успешно ли прошла установка:

> any(grepl("rjson",installed.packages()))
[1] TRUE

Создайте файл sites.json. JSON-файл должен находиться в том же каталоге, что и тестовый скрипт. Код выглядит следующим образом:

Пример

{ "id":["1","2","3"], "name":["Google","Example","Taobao"], "url":["www.google.com","www.example.com","www.taobao.com"], "likes":[ 111,222,333] }
Далее мы можем использовать пакет rjson, чтобы загрузить данные из файла JSON.

Чтобы просмотреть данные, используйте для конкретной строки[ ], используйте для указанных строк и столбцов[[ ]]:

Пример

# Загрузить пакет rjson
library("rjson")

# Получить данные JSON
result <- fromJSON(file = "sites.json")

# Вывести результат
print(result)

print("===============")

# Вывести результат 1-го столбца
print(result[1])

print("===============")
# Вывести результат 2-й строки и 2-го столбца
print(result[[2]][[2]])

Выполнение приведенного выше кода дает следующий вывод:

$id
[1] "1" "2" "3"

$name
[1] "Google" "Example" "Taobao"

$url
[1] "www.google.com" "www.example.com" "www.taobao.com"

$likes
[1] 111 222 333

[1] "==============="
$id
[1] "1" "2" "3"

[1] "==============="
[1] "Example"

Мы также можем использовать функциюas.data.frame(), чтобы преобразовать данные из файла JSON в тип датафрейм, что делает манипулирование данными более удобным для нас:

Пример

# Загрузить пакет rjson
library("rjson")

# Получить данные JSON
result <- fromJSON(file = "sites.json")

# Преобразовать в датафрейм
json_data_frame <- as.data.frame(result)

print(json_data_frame)

Выполнение приведенного выше кода дает следующий вывод:

  id   name            url likes
1  1 Google www.google.com   111
2  2 Example www.example.com   222
3  3 Taobao www.taobao.com   333
Другие расширения