首页 > 解决方案 > 如何用R中的列中的行进行计算

问题描述

我正在尝试对列中的行进行计算:我有一个产品的以下数据:

Day    Price
1      3$
2      12$
3      4$
4      2$
5      4$

我想将一天的价格变化除以前一天,例如第 2 天:

12$/3$ = 4 

结果应该是:

Day    Price    Calculation
1      3$       NA
2      12$      4
3      4$       0,33
4      2$       0,5
5      4$       2

我有一个 5000 价格的清单。我还担心如何在第 1 天获得 NA,因为无法计算。

谢谢!

标签: rdataframecalculation

解决方案


这是dplyr唯一使用gsub代替的解决方案parse_number

library(dplyr)
df %>% 
  mutate(Calculation=as.numeric(gsub("\\$", "", Price)),
         Calculation=round(Calculation/lag(Calculation), 2))
Day Price Calculation
1   1    3$          NA
2   2   12$        4.00
3   3    4$        0.33
4   4    2$        0.50
5   5    4$        2.00

推荐阅读