Фильтр списка в R с использованием ошибки dplyr - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь отфильтровать действительно вложенный список, но у меня возникла проблема. Как бы я ни старался, фильтр не принимает мой список. Первый взгляд на данные, с которыми я работаю:

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 минуты)

...