![](/img/trans.png)
[英]In an R data frame, for a given row, how can I find what percentage a value in column A is of a value in column B?
[英]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.