Как отобразить значения в подсписке списка в r - PullRequest
0 голосов
/ 25 апреля 2019

Я довольно новичок в R. Я пытаюсь применить функцию к значению в полученном мной подсписке, но я не знаю, где искать.

Я читаю некоторые файлы JSON в R примерно так:

library("rjson")
fileNames <- list.files(path = "/<PATH>/TimedSentences", full.names = TRUE)
parseJson <- function(fileName){
  fromJSON(file = fileName)
}

jsons <- lapply(fileNames, parseJson)

jsonToSentJson <- function(jsonList){
  #change sentences to sentiments
}

Файлы json выглядят примерно так

{
  "name": "<STORYNAME>",
  "sentences": [
    {
      "beginTime": 880,
      "endTime": 16960,
      "sentence": "Okay, guys, here we go."
    },
    {
      "beginTime": 14160,
      "endTime": 16960,
      "sentence": "Here we go."
    },...]
}

Теперь я хочу получить почти тот же список обратно, за исключением того, что я хочу запустить функцию для каждого значения предложения и изменить его на значение настроения. У меня установлен пакет с функцией get_sentiment, и я в основном пишу файл json, который выглядит примерно так:

{
  "name": "<MOVIENAME>",
  "sentences": [
    {
      "beginTime": 880,
      "endTime": 16960,
      "sentiment": 1.5
    },
    {
      "beginTime": 14160,
      "endTime": 16960,
      "sentiment": 0.0
    },...]
}

Что я должен искать, когда пытаюсь это сделать?

NB. Я могу понять, как написать файл jsn, как мне кажется, но мне сложно понять, как изменить значение в подсписке

1 Ответ

0 голосов
/ 25 апреля 2019

Я понял это

Я сделал это с

jsonSentencesToJsonSentiment <- function(json){
    list("name" = json[["name"]], 
     "sentiments" =lapply(json[["sentences"]], timedSentenceToTimedSentiment)
     )
}

timedSentenceToTimedSentiment <- function(timedSentence){
  list("beginTime" = timedSentence[["beginTime"]], 
    "endTime" = timedSentence[["endTime"]],
    "sentiment" = get_sentiment(c(timedSentence[["sentence"]]), method = "nrc"))
}

sentJson <- lapply(jsons, jsonSentencesToJsonSentiment)
...