Функция sapply R не работает с длинными списками - PullRequest
0 голосов
/ 13 июля 2020

У меня есть этот код, в котором он берет данные из базы данных, и, поскольку каждые шесть строк у меня есть информация об одной единице, я использовал функцию split для группировки в каждом элементе списка в таблицах, эта информация. После этого я сделал так, что если будет найдена строка "#ERROR", в одном из тиббла он удалит элемент списка (тиббл из 6 строк).

 library(tidyverse) 
    dataset <- read_excel('test.xlsx')


my.list<-split(dataset, rep(1:119, each = 6)) 
new.list <- my.list[sapply(1:length(my.list), function(i) 
  all(my.list[[i]] != "#ERROR"))]

Этот код работает, но в тот момент, когда я использую другую базу данных (настоящую, я использовал ее, чтобы быть быстрее в испытаниях), что привело бы к my.list, который разделен на более чем 17k элементов, Я думаю, это создает проблемы с функцией sapply, поскольку она возвращает new.list, который уменьшил количество строк, но они пусты. Я уже проверил возможные ошибки в различном форматировании в базе данных, и это не проблема. как иначе я могу написать это, чтобы оно работало? Я также подумал, что это могла быть проблема с памятью, так как my.list уже почти 2 гигабайта, у меня 8 гигабайт оперативной памяти и процессор i7

...