先发挥作用。最后。在SAS中,R中有相应的功能吗?

Function first. and last. in SAS,is there a corresponding function in R?

派生基线标志,定义为检测值之前的最后一个非空测试值。 这是SAS代码,首先是功能。最后。在SAS中,R中有对应的函数吗?

data T001;
  set aa;
  if .<ady<=1 and ^missing(avalc) then flag=1;
run;
Proc sort data=T001;by usubjid paramn flag egdtc visitnum;run;
data T002;
  set T001;
  by usubjid paramn flag egdtc visitnum;
  if last.flag and flag=1 then ablfl="Y";
run;

我也找了一些资料,不知道是否一致 https://stat.ethz.ch/pipermail/r-help/2010-November/260997.html

抱歉,数据是这样的。我插入了图片,但我无法访问它。不知道是上传失败还是网络防火墙的原因,直接复制了文字,看起来比较乱,可能需要复制到excel拆分

exstdtc 是药物暴露日期

ady=egdtc-exstdtc(如果ady>=0需要+1,即如果egdtc=exstdtc,ady=1)

ablfl 是基线标志。

studyid usubjid param paramn avalc egdtc visitnum exstdtc ady ablfl

A A-S001 HR 1 10 2022/4/1 -1 2022/4/2 -1 Y

A-S001 HR 1 11 2022/4/3 1 2022/4/2 2

A-S001 HR 1 12 2022/4/6 2 2022/4/2 5

A-S001 RESP 2 20 2022/3/31 -1 2022/4/2 -2

A A-S001 RESP 2 21 2022/4/1 1 2022/4/2 -1 Y

A-S001 RESP 2 22 2022/4/3 2 2022/4/2 2

A A-S003 HR 1 11 2022/4/1 -1 2022/4/3 -2 Y

A-S003 HR 1 2022/4/2 1 2022/4/3 -1

A-S003 HR 1 12 2022/4/6 2 2022/4/3 4

A A-S003 RESP 2 21 2022/3/31 -1 2022/4/3 -3 Y

A-S003 RESP 2 12 2022/4/4 1 2022/4/3 2

A A-S003 RESP 2 22 2022/4/6 2 2022/4/3 4

A A-S003 RESP 2 12 2022/4/8 3 2022/4/3 6

A A-S003 PLUS 3 44 2022/4/1 -1 2022/4/3 -2 Y

A-S003 PLUS 3 44 2022/4/4 1 2022/4/3 2

A-S003 PLUS 3 44 2022/4/6 2 2022/4/3 4

这段代码是我写的,和这段代码的意思差不多,和SAS代码比起来

adeg <- aa %>%
  mutate(FLAG = ifelse(ADY <= 1 & ADY>. & AVALC != "" , 1, NA)) %>% 
  arrange(STUDYID, USUBJID, PARAMCD, FLAG, EGDTC) %>% 
  group_by(USUBJID, USUBJID, PARAMCD, FLAG) %>%
  mutate(ABLFL = ifelse(row_number() == max( row_number()) & FLAG == 1,"Y",NA))