热线电话:13121318867

登录
2018-11-07 阅读量: 936
关于数据转换的问题

屏幕快照 2018-11-05 下午3.22.12.png

如上图所示,

想让同一个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"))

0.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子