Я пытаюсь отфильтровать действительно вложенный список, но у меня возникла проблема. Как бы я ни старался, фильтр не принимает мой список.
Первый взгляд на данные, с которыми я работаю:
glimpse(averageTimed[[1]][["content"]][["sentiments"]])
$ :List of 3
..$ time : num 295280
..$ sentence : chr "Oh, my God."
..$ sentiment:'data.frame': 1 obs. of 10 variables:
.. ..$ anger : num 0
.. ..$ anticipation: num 1
.. ..$ disgust : num 0
.. ..$ fear : num 1
.. ..$ joy : num 1
.. ..$ sadness : num 0
.. ..$ surprise : num 0
.. ..$ trust : num 1
.. ..$ negative : num 0
.. ..$ positive : num 1
$ :List of 3
..$ time : num 304900
..$ sentence : chr "What group is she in?"
..$ sentiment:'data.frame': 1 obs. of 10 variables:
.. ..$ anger : num 0
.. ..$ anticipation: num 0
.. ..$ disgust : num 0
.. ..$ fear : num 0
.. ..$ joy : num 0
.. ..$ sadness : num 0
.. ..$ surprise : num 0
.. ..$ trust : num 0
.. ..$ negative : num 0
.. ..$ positive : num 0
Функция, которая фильтрует это выглядит так:
clusterByMinutes <- function(averageTime, minutes){
count <- 1
clustered <- list()
repeat{
maxTime <- 60000*minutes*count
filteredList <- filter(averageTime[["content"]][["sentiments"]],
time<maxTime & time >= (maxTime - 60000*minutes))
if(length(filteredList) == 0){
break
}
clustered[[count]] <- filteredList
count <- count+1
}
clustered
}
lapply(averageTimed, clusterByMinutes, minutes = 3)
Он всегда отвечает:
Ошибка в UseMethod ("filter_"):
нет применимого метода для filter_, примененного к объекту класса "list"
Как я могу применить эту функцию фильтра, чтобы получить списки? Мне нужно суммировать настроения всех записей за определенное время (сейчас установлено 3 минуты)