【发布时间】:2023-03-07 04:21:01
【问题描述】:
我有以下数据:
library tidyverse
age_grp <- c(10,9,8,7,6,5,4,3,2,1)
start <- c(0.420,0.420,0.420,0.420,0.420,0.420,0.420,0.420,0.420,0.420)
change <- c(0.020,0.033,0.029,0.031,0.027,0.032,0.032,0.030,0.027,0.034)
final_outcome <- c(0.400,0.367,0.338,0.307,0.28,0.248,0.216,0.186,0.159,0.125)
my_data <- data.frame(age_grp,start,change,final_outcome)
my_data1 <- my_data %>%
dplyr::arrange(age_grp)
我想从变量start 中的值中减去变量change 中的值,这样它就是从最老的年龄组到最年轻的年龄组的迭代递减。我希望得到的最终值在变量final_outcome 中。比如从age_grp10开始,我想从0.420减去0.20得到0.400。然后,我想从 0.400 中减去 0.033 得到 0.367 等等。我正在努力解决如何存储这些差异。我在下面进行了尝试,但我不知道如何存储差异然后继续向前(或向后,取决于你如何看待它)减法。任何意见或建议将不胜感激。
my_data1$attempt <- NA
#calculating the decreases
for(i in 2:nrow(my_data1))
my_data1$attempt[i] <- round(my_data1$start[i] - my_data1$change[i-1], 4)
【问题讨论】:
标签: r iteration subtraction