segfault в R с использованием пакета reshape2 и dcast

RStudio был сбой, когда я пытался изменить конкретный кадр данных с помощьюdcast (изreshape2 пакет). Я обнаружил, что сбой на самом деле происходит в самом R, поэтому я запустил свой код приведения в R.app и получил тип ошибки, который дает этому сайту его имя:Error: segfault from C stack overflow, С помощью Google и SO я узнал, что это ошибка доступа к памяти.

Хорошо, я зашел так далеко, но я не знаю, куда идти отсюда. Я не могу предоставить действительно воспроизводимый пример, потому что мой фрейм данных составляет около 558 000 строк, и проблема не возникает на маленьких игрушечных примерах. Например, даже если я возьму, скажем, подмножество 50000 строк данных,dcast работает просто отлично. Может ли быть определенный ряд данных, который вызывает проблему? Если да, то может ли кто-нибудь предложить, какую функцию (-и) искать, это может быть причиной ошибки, которую я получаю?

Вот подмножество фрейма данных, из которого я преобразую (с поддельными значениями для некоторых переменных), за которым следует используемая функция приведения. Я также включил этот небольшой фрагмент данных вdput ниже, на случай, если будет полезно поиграть с ним. Реальный набор данных имеет около 700 значенийprog15 значенийprog1и 5 значенийfa.type.

  id        term   yr    nslds acad.lev    prog            prog1 fa.type amount
1  1   Fall 2009 2010 Graduate Graduate  loan 1      Other Loans    Loan   5000
2  1 Spring 2010 2010 Graduate Graduate  loan 1      Other Loans    Loan   5000
3  2   Fall 2009 2010 Graduate Graduate  loan 2    Stafford Loan    Loan   8781
4  2 Spring 2010 2010 Graduate Graduate  loan 2    Stafford Loan    Loan   8781
5  3   Fall 2007 2008 Graduate Graduate  loan 3    Stafford Loan    Loan   4250
6  3   Fall 2007 2008 Graduate Graduate grant 1 University Grant   Grant   1707

fa.wide = dcast(id + term + yr + nslds + acad.lev ~ prog1 + fa.type , data=fa, value.var="amount", fun.aggregate=sum)

fa = structure(list(id = c(1, 1, 2, 2, 3, 3), term = structure(c(7L, 
8L, 7L, 8L, 1L, 1L), .Label = c("Fall 2007", "Spring 2008", "Summer 2008", 
"Fall 2008", "Spring 2009", "Summer 2009", "Fall 2009", "Spring 2010", 
"Summer 2010", "Fall 2010", "Spring 2011", "Summer 2011", "Fall 2011", 
"Spring 2012", "Summer 2012", "Fall 2012", "Spring 2013"), class = c("ordered", 
"factor")), yr = c(2010L, 2010L, 2010L, 2010L, 2008L, 2008L), 
    nslds = structure(c(7L, 7L, 7L, 7L, 7L, 7L), .Label = c("1st Year, Never Attended",, 
    "1st Year, Previously Attended", "2nd Year", "3rd Year", 
    "4th Year", "5th Year+", "Graduate"), class = c("ordered", 
    "factor")), acad.lev = structure(c(6L, 6L, 6L, 6L, 6L, 6L
    ), .Label = c("Freshman", "Sophomore", "Junior", "Senior", 
    "PB Undergrad", "Graduate"), class = c("ordered", "factor"
    )), prog = c("loan 1", "loan 1", "loan 2", "loan 2", "loan 3", 
    "grant 1"), prog1 = c("Other Loans", "Other Loans", "Stafford Loan", 
    "Stafford Loan", "Stafford Loan", "University Grant"), fa.type = structure(c(3L, 
    3L, 3L, 3L, 3L, 2L), .Label = c("Athletic", "Grant", "Loan", 
    "Scholarship", "Waiver", "Work/Study"), class = "factor"), 
    amount = c(5000, 5000, 8781, 8781, 4250, 1707)), .Names = c("id", 
"term", "yr", "nslds", "acad.lev", "prog", "prog1", "fa.type", 
"amount"), row.names = c(NA, 6L), class = "data.frame")

Ответы на вопрос(2)

Ваш ответ на вопрос