Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R—如何创建一个循环,使其函数基于列中的前一个值,而不指定该值的确切内容_R_Loops_Populate - Fatal编程技术网

R—如何创建一个循环,使其函数基于列中的前一个值,而不指定该值的确切内容

R—如何创建一个循环,使其函数基于列中的前一个值,而不指定该值的确切内容,r,loops,populate,R,Loops,Populate,我试图预测世界上每个国家的人口数量。我想用上一年的人口数乘以今年的预测增长率。因为数据框中有多个国家,所以我希望代码能够识别阿富汗的最后一个人口,而不是离开前一行,前一行可能是像孟加拉国这样的另一个国家 ALL_数据是我的数据框,包含以下列 Country - AFG Code - AFG_2016 Population - 200000 Growth - 0.0002 我尝试过使用下面的循环对数据进行排序,但是,在使用NAs的多个国家和年份对数据进行排序时遇到了困难 ALL_DATA[ord

我试图预测世界上每个国家的人口数量。我想用上一年的人口数乘以今年的预测增长率。因为数据框中有多个国家,所以我希望代码能够识别阿富汗的最后一个人口,而不是离开前一行,前一行可能是像孟加拉国这样的另一个国家

ALL_数据是我的数据框,包含以下列

Country - AFG
Code - AFG_2016
Population - 200000
Growth - 0.0002
我尝试过使用下面的循环对数据进行排序,但是,在使用NAs的多个国家和年份对数据进行排序时遇到了困难

ALL_DATA[order(ALL_DATA$Code) 

index<-min(which(is.na(ALL_DATA$Population)))
for(i in index:dim(ALL_DATA[1])){ALL_DATA$Population[i]<-(ALL_DATA$Population[i-1]*(1+ALL_DATA$Growth[i]))
}
ALL_DATA[顺序(ALL_DATA$code)

indexhi!如果这些数据已经以列的形式存在,为什么不直接使用te apply函数呢?据我所知,您已经拥有了数据框中列的所有必要信息,因此类似于
results感谢上述内容,我只是尝试了一下,但它并没有完全满足我的需要。我希望能够在sa中替换NAsme数据帧,因为这些值将在以后的编码中需要。此外,排序似乎不起作用,因此认为可能有一个选项让R识别以前的国家/地区值,但似乎无法计算出来!非常感谢您的帮助使用
Reduce
和分组应用方法(例如,如在data.table或dplyr中实现的)。在这种情况下,如果您能给出您拥有的数据帧的实际(简短)示例,那就太好了。
head(您的_df)
,以及(类似缩写的)结果数据帧,以便更好地可视化您希望数据的外观。"国家PCP代码年LR_P SR_P P P P P P P P P P P ON_LR ON_SR ON_P 1 GEO 2 GEO 2016 25 340000.0 2000000 500 200 10 2 GEO 2 GEO 2 GEO 2017 30 390000.0 250000 300 3000 10 3 GEO 2 GEO 2 GEO 2 2018 2018 40 400000.0 3000000 400 500 5 4 GEO 3 GEO 3 GEO 3 2019 NA NA NA NA NA NA NA NA NA NA NA 5 GEO 3 GEO_2020 2020 NA 429657.6 NA NA“忽略最后一栏-LR_P是反刍动物的大种群。那里也会有其他国家。我想用该国上一年的人口增长*来取代NAs