gpt4 book ai didi

r - 如何计算数据框列的百分比变化,然后是下一个,等等?

转载 作者:行者123 更新时间:2023-12-01 22:12:32 26 4
gpt4 key购买 nike

我有以下数据框,称它为“p”:

    Q1  Q2  Q3
X Product 4.986184956 5.083868356 5.109861156
Y Product 2.86990877 2.834816682 2.904347607
Z Product 6.58413545 6.238497279 6.40142101

我想计算 p 中每一列之间的百分比变化,并将每一列的输出放入一个名为“pchange”的新数据框中。

我试过使用 lag() 函数,但没有成功。 (我对这门语言还是很陌生。)

我非常感谢任何关于如何最好地解决这个问题的想法。谢谢你!

最佳答案

从我上面的评论中复制。使用 dplyr::transmute:

的简单解决方案
pchange <- df %>% 
transmute(
change_Q1_Q2 = ((Q2 - Q1)/Q1)*100,
change_Q2_Q3 = ((Q3 - Q2)/Q2)*100
)

给予

# A tibble: 3 x 2
change_Q1_Q2 change_Q2_Q3
<dbl> <dbl>
1 1.959081 0.511280
2 -1.222760 2.452749
3 -5.249560 2.611586

如果您想保留 Product 列,您可以使用 mutate 而不是 transmute。我赞同 Jens Leerssen 对 R for Data Science 的认可。

(假设你的数据结构是这样的)

df <- tibble::tribble(
~Product, ~Q1, ~Q2, ~Q3,
"X Product", 4.986184956, 5.083868356, 5.109861156,
"Y Product", 2.86990877, 2.834816682, 2.904347607,
"Z Product", 6.58413545, 6.238497279, 6.40142101)

关于r - 如何计算数据框列的百分比变化,然后是下一个,等等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47066283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com