У меня есть фрейм данных, который выглядит следующим образом:
df <- data.frame(value =c(2,3,1,3,5,2),
renew =c(2,2,3,2,4,1),
renewFreq = c(.02,.12,.13,.12,.40,.04),
recommend = c(1,3,5,4,2,2),
recommendFreq = c(.01,.30,.46,.20,.07,.07),
year = c(1,2,3,2,1,1),
valueFreq = c(.02,.03,.01,.03,.05,.02),
meanVal = c(1.1,2.2,3.1,2.2,1.1,1.1))
value renew renewFreq recommend recommendFreq year valueFreq meanVal
1 2 2 0.02 1 0.01 1 0.02 1.1
2 3 2 0.12 3 0.30 2 0.03 2.2
3 1 3 0.13 5 0.46 3 0.01 3.1
4 3 2 0.12 4 0.20 2 0.03 2.2
5 5 4 0.40 2 0.07 1 0.05 1.1
6 2 1 0.04 2 0.07 1 0.02 1.1
в этом фрейме данных, значение, обновить и рекомендовать в масштабе 1-5.Столбцы Freq показывают частоту для шкалы по годам.Среднее значение является средним для каждого года.Таким образом, существуют повторяющиеся значения, которые необходимо сжать по годам.Мне также нужны агрегаты обновлений и рекомендуемые частоты, чтобы при значении шкалы 1 или 2 они суммировались, 3 получал новый столбец, а 4 и 5 суммировались.
Изменение формы должно выглядеть следующим образом:
year value.1 value.2 value.3 value.4 value.5 meanVal prctRenew1or2 prctRenew3 prctRenew4or5 prctRecomm1or2 prctRecomm3 prctRecomm4or5
1 1 0.00 0.04 0.00 0 0.05 1.1 0.06 0.00 0.4 0.15 0.0 0.00
2 2 0.00 0.00 0.06 0 0.00 2.2 0.24 0.00 0.0 0.00 0.3 0.20
3 3 0.01 0.00 0.00 0 0.00 3.1 0.00 0.13 0.0 0.00 0.0 0.46
Значение value (1-5) должно быть значением заголовков.1 - value.5, а значения - valueFreq для этого года,meanVal - это среднее значение, свернутое по году.Наконец, есть 6 столбцов prct.Например, prctRenew1or2 будет суммой частот для renewFreq, где обновляемый счет равен 1 или 2 (и т. Д. Для других переменных prct).
Обратите внимание, что некоторые столбцы имеют значения 0 для всехпуть вниз, однако важно, что они все еще включены.