2018-11-07
阅读量:
936
关于数据转换的问题
如上图所示,
想让同一个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
0
4
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论