Использование 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 ")]'? –
Просьба представить воспроизводимый пример, включив данные образца. Хорошие ссылки на то, что и как включить здесь: [help/mcve] (http://stackoverflow.com/help/mcve) и [воспроизводимые примеры] (http://stackoverflow.com/questions/5963269/how-to -make-а-большой-R-воспроизводимый-пример). – r2evans
@ Ответ jgadoury решит немедленную функцию, но вы также, вероятно, захотите * не использовать функцию агрегации по умолчанию 'length'. Вместо этого я бы рекомендовал «sum». – Gregor