R 中多列的百分比变化

问题描述 投票:0回答:1

我有一个 R 数据框,我试图在其中计算多列的变化百分比,但我似乎无法计算出它的正确语法。

基本上,我正在尝试计算列索引 2:5 相对于基准日期的变化百分比(第 1 列是日期)。

我认为有效的方法是:

df <- df %>% mutate(across(2:5, ~ -first(2:5)/2:5))*100

或者类似的东西,但似乎不正确。有人有建议吗? 非常感谢

r dataframe dplyr
1个回答
0
投票

始终分享可重现的数据示例以及预期输出,以解释您面临的问题。它可以更快地为您提供帮助并避免混乱。

根据我对您的解释的理解,我认为您想要的是计算与同一列中的第一个值相比的列值的百分比变化。以

mtcars
为例,这就是实现这一目标的方法 -

library(dplyr)

mtcars %>% mutate(across(2:5, ~(. - first(.))/first(.) * 100))

#                    mpg cyl  disp     hp   drat  wt qsec vs am gear carb
#Mazda RX4            21   0   0.0   0.00   0.00 2.6   16  0  1    4    4
#Mazda RX4 Wag        21   0   0.0   0.00   0.00 2.9   17  0  1    4    4
#Datsun 710           23 -33 -32.5 -15.45  -1.28 2.3   19  1  1    4    1
#Hornet 4 Drive       21   0  61.3   0.00 -21.03 3.2   19  1  0    3    1
#Hornet Sportabout    19  33 125.0  59.09 -19.23 3.4   17  0  0    3    2
#Valiant              18   0  40.6  -4.55 -29.23 3.5   20  1  0    3    1
#Duster 360           14  33 125.0 122.73 -17.69 3.6   16  0  0    3    4
#Merc 240D            24 -33  -8.3 -43.64  -5.38 3.2   20  1  0    4    2
#Merc 230             23 -33 -12.0 -13.64   0.51 3.1   23  1  0    4    2
#Merc 280             19   0   4.7  11.82   0.51 3.4   18  1  0    4    4
#...
#...
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.