我对R相当陌生。我正在尝试将函数应用于所获得的子列表中的值,但我不知道在哪里查找。
我像这样读取R中的一些json文件:
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文件,但是在弄清楚如何更改子列表中的值时遇到了麻烦
答案 0 :(得分:0)
我知道了
我是用
做到的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)