我有一个看起来像这样的数据框:
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。 “频率”列按年份给出标度值的频率。 meanVal是每年的平均值。因此,存在按年份精简的重复值。我还需要更新的总和,并建议频率,以便如果小数位值是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
值得分(1-5)应该是标头value.1-value.5,得分是该年的valueFreq。 meanVal是按年份折叠的meanVal。最后,有6个prct列。例如,prctRenew1or2将是renewFreq的频率之和,其中renew下的分数是1或2(其他prct var依此类推)。
请注意,某些列的值一直为0,但是重要的是仍要包括它们。