R 中增加数据集的新列的百分比变化

Percentage Change with new column for increased data set in R

我有以下数据集,其中包含不同的水果和蔬菜组合,每周他们的数量希望获得每个数据列的百分比变化。

下面已经为每一列提到了总数。

我如何从 r 中的每一列中获取百分比变化?问题是我如何每周更改百分比,因为数据将更新 WOW 所以我想自动添加一个新的而不是手动的末尾的列或每次更新数据时都会更改百分比的新数据集。

Type      X22        X23         X24          X25    x26
Apple    10,000      20,000      30,000      40,000  ...
Banana   555          345         456         567    ... 
Mango    123          344         456        1,189   ... 
Onion    77,686      9,995       8,899        533    ... 
Tomato   233          444         566        6,788   ... 
Beans    123          556        4,566         777   ...
Total    88,720      31,684      44,943      49,854 

期望的输出

 Type    X22    X23      X24     x25    x26
Apple   11.27%  63.12%  66.75%  80.23%  ...
Banana  0.63%   1.09%   1.01%   1.14%   ... 
Mango   0.14%   1.09%   1.01%   2.38%   ...
Onion   87.56%  31.55%  19.80%  1.07%   ... 
Tomato  0.26%   1.40%   1.26%   13.62%  ...
Beans   0.14%   1.75%   10.16%  1.56%   ...
Total   100.00% 100.00% 100.00% 100.00% ....

如果 df 是您的原始数据框,则应该执行以下操作(假设您所有的数字列都是 numeric 格式。

df_percentage <- cbind(df[1], 
                       data.frame(lapply(df[2:ncol(df)], 
                                         function(x) paste0(format(round(x / x[length(x)], 2), nsmall = 2), "%"))))