Итак, у меня есть набор данных размером 1,4 ГБ, и я пытаюсь изменить его, используя следующую функцию:
reshaped <- function(df){
df %>%
select(subject_num, concept_code) %>%
group_by(subject_num, concept_code) %>%
count() %>%
spread(concept_code, n, fill=0)
return(df)
}
df = read_rds('df.RDs') %>%
mutate(a=paste(a, b, sep="|"))
df <- reshaped(df)
write_rds(df, 'df_reshaped.RDs')
Я получаю: Error: cannot allocate vector of size 1205.6 GB
. Во время отладки я обнаружил, что код застревает в операторе распространения внутри измененной функции. Я не вижу, как набор данных объемом 1,4 ГБ мог бы запросить 1205,6 ГБ памяти внутри кода dplyr, который я написал. Ничто в приведенном выше коде не похоже на дублирование этого набора данных примерно в 900 раз, поэтому я немного застрял здесь. Кто-нибудь может подсказать, почему это происходит?