使用R.我是一個新手。我確實試圖尋找這種特殊的錯誤/情況,並且空手而歸。這裏所說:無法在R dcast中識別出計算列
我從另一列
MYDATA$NETREV <- (MYDATA[60] - MYDATA[51])
減去現有列上創建一個數字列當我嘗試用dcast對新列這樣做:
NETREV.TREND <- dcast(MYDATA, SCHOOL ~ YEAR, value.var="NETREV")
我得到這個錯誤:
Error in `[.data.frame`(value, overall) : undefined columns selected
我試過提到新位置的列,value.var=MYDATA[61]
,當我這樣做,我取得開頭的錯誤:
Error: value.var (list(OPREVADJ = c(-9280446, -14437883, -12637590, -14365373, -17149995, -13960077, -11458410, -3701678, -861092, -10071075, 23965, -5324362, -5974479, 14275488, -6118691, -7801750, -7838486, -14343695, NA, -17785841, -14357459, -14787673, -480654 ... etc.
使用dcast
在我的數據任何其他列工作正常,究竟什麼是應該做的。
對不起,我沒有早點拼出來。這就是我的數據是這樣的:
SCHOOL YEAR REVENUE EXPENSES
A 2011 10000000 12000000
A 2012 15000000 14000000
A 2013 16000000 15700000
B 2011 8000000 6000000
B 2012 7500000 6500000
B 2013 7770000 5500000
我創建新列NETREV(這顯然是收入減去支出)
SCHOOL YEAR REVENUE EXPENSES NETREV
A 2011 10000000 12000000 -2000000
A 2012 15000000 14000000 1000000
A 2013 16000000 15700000 300000
B 2011 8000000 6000000 2000000
B 2012 7500000 6500000 1000000
B 2013 7770000 5500000 2270000
我想dcast使它看起來像下面:
SCHOOL 2011 2012 2013
A -2000000 1000000 300000
B 2000000 1000000 2270000
檢查列名稱。你從'名字'(MYDATA)[名字(MYDATA)%%c(「SCHOOL」,「YEAR」)]'中得到了什麼? –
請提供一個可複製的例子,包括樣品數據。有關什麼和如何包括很好的參考在這裏:[幫助/ mcve](http://stackoverflow.com/help/mcve)和[可重現的示例](http://stackoverflow.com/questions/5963269/how-to - 製作 - 一個偉大-R重現-例子)。 – r2evans
@ jgadoury的答案將解決直接函數,但是您也可能想要*不使用默認的聚合函數「length」。我會推薦'sum'。 – Gregor