首页 > 解决方案 > 如何按第一行/上一行划分新列中的行?

问题描述

我想创建两列:

  1. 下一行的值应该除以第一行的值。
  2. 为了将下一行的值除以上一行的值并以百分比表示。

数据

No    Value
1    10
2    15
3    5
4    10
5    40

结果:

1.

No    Value    V2
1    10    1
2    15    1,5
3    5     0,5
4    10    1
5    40    4

2.

No    Value    V2    V4
1    10    1    100%
2    15    1,5    150%
3    5     0,5    33,33%
4    10    1    200%
5    40    4    400%

标签: rrowsdivide

解决方案


一种选择是

library(dplyr)
df1 %>%
  mutate(V2 = Value/first(Value), 
      V4 = 100 * Value/lag(Value, default = first(Value)) )
#No Value  V2        V4
#1  1    10 1.0 100.00000
#2  2    15 1.5 150.00000
#3  3     5 0.5  33.33333
#4  4    10 1.0 200.00000
#5  5    40 4.0 400.00000

推荐阅读