簡體   English   中英

如何獲取 sas 中上一行的值

[英]how to get value of previous row in sas

如何獲取前一行的值,例如,在C列的第一行值是 95,它應該被添加到A列的第二行,然后我想減去AB列值將是 89,然后 89 應該添加到第三行行A列等等,直到LAN列值相同,對於新的 LAN AB = C, C值被添加到下一行A列中,

我在捕獲上一列的值時使用了 LAG function,但在新LAN可用時卡住了

在此處輸入圖像描述

我沒有遵循所有的邏輯,但是分組滯后可以像這樣處理。

data have;
input Lan A B C;
datalines;
123 100 5 95  
123 95  6 89  
123 89  7 82  
123 82  8 74  
456 500 2 498 
456 498 3 495 
456 495 4 491 
456 491 5 486 
789 600 6 594 
789 594 7 587 
789 587 8 579 
;

data want;
   set have;
   by Lan;
   lagC = ifn(first.Lan, ., lag(C));
run;

暫無
暫無

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

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