dcast
(reshape2
パッケージから)を使用して特定のデータフレームを再形成しようとすると、RStudioがクラッシュしました。クラッシュが実際に R 自体で発生していることを発見したので、R.app でキャスト コードを実行したところ、このサイトにその名前を付けるタイプのエラーが発生しました: Error: segfault from C stack overflow
. Google と SO の助けを借りて、これがメモリ アクセス エラーであることを知りました。
さて、ここまで来ましたが、ここからどこへ行くべきかわかりません。私のデータフレームは約558,000行で、小さなおもちゃの例では問題が発生しないため、真に再現可能な例を提供することはできません. たとえば、データの 50,000 行のサブセットを取得したとしても、dcast
問題なく動作します。問題を引き起こしている特定のデータ行がある可能性はありますか? もしそうなら、私が得ているタイプのエラーを引き起こしている可能性のある、探すべき機能を誰でも提案できますか?
これは、私がキャストしているデータ フレームのサブセット (一部の変数には偽の値を使用) で、その後に使用しているキャスト関数が続きます。また、この小さなデータ スニペットをdput
以下の関数に含めました。これをいじってみると役立つ場合があります。実際のデータセットには、 の約 700 個の値prog
、 の 15 個の値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")