我有这个数据
DATA = data.frame(STUDENT=c(1, 1, 2, 2, 3, 3, 4, 5),
TIME=c(1, 2, 1, 2, 1, 2, 2, 1),
SCORE=c(6, 9, 9, 5, 5, 5, 8, 9))
试着让这个
DATA2 = data.frame(STUDENT=c(1, 2, 3, 4, 5),
SCOREDIFFERENCE=c(3, -4, 0, NA, NA))
其中,我对所有测量值取SCORE[TIME==2]-SCORE[TIME==1],并且当只有一个测量值时,则值SCOREDIFFERENCE为NA
我试试这个:DATA2 = DATA %>% group_by(STUDENT) %>% mutate(SCOREDIFFERENCE = SCORE[TIME==2]-SCORE[TIME==1])
无成功
5条答案
按热度按时间gv8xihay1#
使用
tidyverse
的解决方案:vaj7vani2#
您可以在
summarise
中尝试diff
,使用.by = STUENT
或者像@LMc建议的那样,
这给
waxmsbnn3#
基地的另一个选择。
3b6akqbq4#
或者使用
lead
创建于2023-09-29带有reprex v2.0.2
bd1hkmkf5#
对时间不按顺序的鲁棒性: