r - 在 R 中寻找数据帧的增长

标签 r

假设我有以下数据框

Website <- rep(paste("Website",1:3),2)
Year <- c(rep(2013,3),rep(2014,3))
V1 <- c(10,20,50,20,30,70)
V2 <- c(5,15,30,15,30,45)
df <- data.frame(Website,Year,V1,V2)
df


    Website Year V1 V2
1 Website 1 2013 10  5
2 Website 2 2013 20 15
3 Website 3 2013 50 30
4 Website 1 2014 20 15
5 Website 2 2014 30 30
6 Website 3 2014 70 45

我想找到的是每个 website2013 年到 2014 的增长,即两个变量的 (x1 - x0)/x0。这将导致执行以下操作的数据框
    Website  V1  V2
1 Website 1 1.0 2.0
2 Website 2 0.5 1.0
3 Website 3 0.4 0.5

这只是两个变量 WebsiteV1 的每个 V2 的增长率。

最佳答案

假设你有更多的时间,dplyr 可以很好地处理它。

library(dplyr)
growth <- function(x)x/lag(x)-1
df %>% 
  group_by(Website) %>% 
  mutate_each(funs(growth), V1, V2)
#    Website Year  V1  V2
#1 Website 1 2013  NA  NA
#2 Website 2 2013  NA  NA
#3 Website 3 2013  NA  NA
#4 Website 1 2014 1.0 2.0
#5 Website 2 2014 0.5 1.0
#6 Website 3 2014 0.4 0.5

关于r - 在 R 中寻找数据帧的增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27994590/

相关文章:

r - 结合地理数据中的县

r - 长时间使用 mongo.find.all (rmongodb) 导入数据

r - Sparklyr - 更改 Spark 数据框中的列名称

R:在没有 for 循环的情况下将 "short form"数据转换为 "long form"数据?

c - 带有 C/C++ 和 openMP 的 R 包 : how to make "Makevars" file under "mypackage/src/" folder?

r - 映射两个列表

r - 将 R 数据集中的数据写入 Redshift

r - R 中的合并表

r - 在 knitr 中打印数据帧时隐藏 NA

r - 确定矩阵是否至少有一个零元素