我正在尝试创建一个R脚本,上面写着“创建一个新变量,并根据之前的变量'得分',连续10个'得分'得1分,其中至少8个'得分'中的8个'是在1952年或以上“
答案 0 :(得分:1)
zoo::rollapply()
#make dataframe with scores
df<-data.frame(score=sample(1000:3000,2000))
require(zoo) # for rollapply() function
df$newvar<-c(rep(0,9),rollapply(df,width=10,FUN=function(x)ifelse(length(x[x>=1952])>=8,1,0)))
head(df[df$newvar==1,])
score newvar
25 2695 1
26 2750 1
30 2468 1
140 2525 1
141 2515 1
275 1989 1