我有一个像这样的人:
cat<-c("a","a","a","b","b","b","c","c","c")
julian_day<-c(100,112,123,192,207,237,34,87,102)
dat<-data.frame(cat,julian_day)
在这个例子中,我有三个类别,每个类别有三个观察。我想从随后的观察中减去每个类别的第一个观察结果,并将这些信息存储在一个新的列中。
结果如下:
cat<-c("a","a","a","b","b","b","c","c","c")
julian_day<-c(100,112,123,192,207,237,34,87,102)
difference<-c(0,12,23,0,15,45,0,23,68)
dat<-data.frame(cat,julian_day,difference)
感谢。
答案 0 :(得分:1)
使用ave
dat$difference <- ave(dat$julian_day,dat$cat,FUN=function(x)x-x[1])