簡體   English   中英

如何使用 R 中特定行開頭的百分比變化來創建新列和數據框?

[英]How can I make a new column and data frame with the percentage change from the start of a particular row in R?

例如,我有以下數據集:

wage <- c(2100, 2100, 2500, 2400, 2300, 2200, 2700, 2300, 2900, 3000)
timestamp <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

example <- data.frame(wage, age)
example

我怎樣才能制作另一個 dataframe 顯示起始工資的百分比變化,我說哪一行是起始工資。 所以比如說我想從第3行開始,到第9行結束。第一個值當然是0%的變化,也就是工資2500,下一個值是(2400-2500)*100/2400 = -4 %,之后的下一個值將是 (2300-2500)*100/2300 = -8%,依此類推,共 7 行(第 3-9 行)。

所以它應該看起來像這樣:

timestamp    wage%change
3            0
4            -4
5            -8
6            -12
7            8
8            -8
9            16

謝謝!

使用dplyr一種方法:

library(dplyr)

start <- 3
end <- 9

example %>%
  slice(start:end) %>%
  mutate(wage_change = (wage - first(wage)) * 100/first(wage))

#  wage timestamp wage_change
#1 2500         3           0
#2 2400         4          -4
#3 2300         5          -8
#4 2200         6         -12
#5 2700         7           8
#6 2300         8          -8
#7 2900         9          16

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM