У меня большой data.frame, и я хочу сделать в нем две конкретные модификации, и я понятия не имею, как.Вот как это выглядит сейчас:
cod Programa2 ano ValordaOperacao2 ValorDesembolsado2
1 310010 PROVIAS 2009 300000.0 300000.0
2 310020 PROVIAS 2007 824988.8 824988.8
3 420010 PROVIAS 2010 1250000.0 1250000.0
4 420010 CAMINHO DA ESCOLA 2008 598900.0 598900.0
5 310030 PROVIAS 2014 820000.0 820000.0
6 310040 PROVIAS 2012 660000.0 660000.0
7 310040 CAMINHO DA ESCOLA 2012 314150.0 314150.0
8 240010 CAMINHO DA ESCOLA 2013 226840.0 226840.0
9 240010 CAMINHO DA ESCOLA 2012 366840.0 140000.0
34 430045 CAMINHO DA ESCOLA 2008 413450.0 413450.0
35 430045 PROVIAS 2009 770000.0 770000.0
36 520030 PROVIAS 2015 1250000.0 1250000.0
37 310160 PROVIAS 2007 116728.3 116728.3
38 310160 CAMINHO DA ESCOLA 2008 684000.0 684000.0
39 310160 PROVIAS 2007 42600.0 42600.0
40 310160 PROVIAS 2007 1492000.0 1492000.0
41 310160 PROVIAS 2007 1316971.7 1316971.7
Я считаю, что наиболее важными переменными здесь являются «cod» и «ano».Первая модификация, которую я хочу, заключается в следующем: для того же самого «треска», который у нас есть разные «Programa2» в том же «ano», создайте новые переменные с именами «Programa3», «ValordaOperacao3» и «ValorDesembolsado3», связанные с теми же строками.Например: в строках 6 и 7 у нас есть такие ошибки :
cod Programa2 ano ValordaOperacao2 ValorDesembolsado2
6 310040 PROVIAS 2012 660000.0 660000.0
7 310040 CAMINHO DA ESCOLA 2012 314150.0 314150.0
, и я хочу преобразовать вот так для всех ошибок в этих data.frame:
cod Programa2 ano ValordaOperacao2 ValorDesembolsado2 Programa3 ValordaOperacao3 ValorDesembolsado3
6 310040 PROVIAS 2012 660000.0 660000.0 CAMINHO DA ESCOLA 314150.0 314150.0
Второе, что я хочу изменить, я считаю, проще.На самом деле, я почти сделал это в stata, но в R у меня возникли некоторые проблемы, чтобы думать одним способом.Есть некоторые «трески», которые имеют ту же «Programa2» для того же «Ano», что я хочу сделать в этом случае, это превратить эти две или три строки в одну, делая СУММ «ValordaOperacao2» и «ValorDesemvolsado2»,Например, в строках с 37 по 41 у меня есть:
cod Programa2 ano ValordaOperacao2 ValorDesembolsado2
37 310160 PROVIAS 2007 116728.3 116728.3
38 310160 CAMINHO DA ESCOLA 2008 684000.0 684000.0
39 310160 PROVIAS 2007 42600.0 42600.0
40 310160 PROVIAS 2007 1492000.0 1492000.0
41 310160 PROVIAS 2007 1316971.7 1316971.7
И я хочу что-то подобное: строка 37 представляет собой сумму 37 + 39 + 40 + 41:
cod Programa2 ano ValordaOperacao2 ValorDesembolsado2
37 310160 PROVIAS 2007 2968300.0 2968300.0
38 310160 CAMINHO DA ESCOLA 2008 684000.0 684000.0
Ps: когда «Programa2» одинакова для того же «треска», нет проблем, если «Ano» отличается.Кто-то может мне помочь?Спасибо