如上图所示,
想让同一个sub条件下,SD==1 条件下的 rating_indif2 减去 SD==0 条件下的rating_indif2,
这样,每一个sub,计算出一个差值。
另外需要注意,数据中SD==1 和SD==0的条件并不一定是固定的前后顺序
能不能不使用循环就能实现计算?
可以如下参考办法:
df <- data.frame(sub=rep(26:28, each=2),
sd=rep(c(0,1), times=3),
rating_indif=rnorm(6))
subb <- df$sub %>% unique()
noforloop <- function(subb) {
sub_temp <- df[df$sub==subb,]
dif_temp <- sub_temp[sub_tempsd==1,"ratingindif"]−subtemp[subtempsd==0, "rating_indif"]
return(c(subb,dif_temp))
}
your_dif <- lapply(subb, noforloop) %>% unlist %>% matrix(nrow=length(subb), byrow=T) %>%
as.data.frame %>% `names<-`(c("sub", "diff"))
三个资料Q群下载不了也转发不了,先放这里Fine_tuning.zipLangChain.zipdata_clear.rar