私が作成した人工データセットがあります。
x<-rnorm(100,10,10)
y<-rnorm(100,20,10)
Location<-c((rep("AB", 40)),(rep("TA", 30)),(rep("OP", 30)))
Year<-c((rep("1999", 10)),(rep("2000", 9)),(rep("2001", 12)),(rep("2002", 9)),(rep("1999", 7)),(rep("2000", 6)),(rep("2001", 6)),(rep("2002", 11)),(rep("1999", 12)),(rep("2000", 8)),(rep("2001", 5)),(rep("2002", 5)))
Data<-cbind(x,y,Location,Year)
> head(Data)
x y Location Year
[1,] "1.8938661556415" "19.851256070398" "AB" "1999"
[2,] "21.0735971323312" "17.4993965352294" "AB" "1999"
[3,] "30.8347289164302" "7.63333686308105" "AB" "1999"
[4,] "8.913993138201" "14.7085296541221" "AB" "1999"
[5,] "20.8309225677419" "12.0888505284667" "AB" "1999"
[6,] "25.3978549194374" "20.47154776064" "AB" "1999"
次のような各 x および y の arc2tan を取得したいと思います。
Theta<-atan2(y[i+1]-y[i],x[i+1]-x[i])
しかし、私は年の場所内で毎年これを行いたいだけです。つまり、1999年から2000年の間、または2001年から2002年の間などのシータを見つけたくないのです。同じ年の同じ場所のx点とy点の間だけです。
私はもともと上記のことを行うループを書いていましたが(やりたくないことです)、ループが毎年停止してリセットされるように、誰かがそれを変更する方法を知っているかどうか疑問に思っていました。元のループを以下に示します。
for (i in 1:length(x)-1){
Theta[i]<-atan2(y[i+1]-y[i],x[i+1]-x[i])
}
ヘルパーはいますか?