如上图所示,
想让同一个sub条件下,SD==1 条件下的 rating_indif2 减去 SD==0 条件下的rating_indif2,
这样,每一个sub,计算出一个差值。
另外需要注意,数据中SD==1 和SD==0的条件并不一定是固定的前后顺序
能不能不使用循环就能实现计算?
求大牛帮忙解答,顺便给我涨点知识。
多谢!
楼主: vieruodu
|
7228
9
[问答] 同一列数据内,根据条件,上下前后相减 |
本科生 36%
-
|
回帖推荐jgchen1966 发表于3楼 查看完整内容 library(tidyverse)
library(magrittr)
### 此处假设 每组sub只有二行,一行sd==0,另一行sd==1
mydata%% arrange(sub,sd)%>% ## 排序,保证,每组sub 中 sd==0在第一行,sd==1在第二行
group_by(sub)%>%
mutate( dif=rating_indif2-lag(rating_indif2))%>% ## dif 便是你要的值 ,sd==0 时 dif为NA
ungroup()
#### 若只想要dif 有值的行 ...
| ||
| ||||||||
| ||||||||
| ||
京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明 免责及隐私声明