私はこのようなデータフレームがあります。関数r(この場合はchull())をrのデータフレーム内のグループに適用する/ループする方法は?
x2 <- c(12,-10,-3,-5,-3, 18,-14,-3,-13,14,12,-10,-3,-5,-3, 18,-14,-3,-13,14)
y2 <- c(-3,-4,-11,-12,-13,-4,5,-10,-3,6,-3,-4,-11,-12,-13,-4,5,-10,-3,6)
ID2 <- c(5088,5088,5088,5088,5088,5088,5088,5088,5088,5088,6000,6000,6000,6000,6000,6000,6000,6000,6000,6000)
D2 <- c(59,49,70,40,74,78,90,55,65,73,59,49,70,40,74,78,90,55,65,73)
Code2 <- c(110,110,110,130,110,110,110,110,110,100,110,110,110,130,110,110,110,110,110,100)
df2 <- data.frame(x2,y2,ID2,D2,Code2)
df2
x2 y2 ID2 D2 Code2
1 12 -3 5088 59 110
2 -10 -4 5088 49 110
3 -3 -11 5088 70 110
4 -5 -12 5088 40 130
5 -3 -13 5088 74 110
6 18 -4 5088 78 110
7 -14 5 5088 90 110
8 -3 -10 5088 55 110
9 -13 -3 5088 65 110
10 14 6 5088 73 100
11 12 -3 6000 59 110
12 -10 -4 6000 49 110
13 -3 -11 6000 70 110
14 -5 -12 6000 40 130
15 -3 -13 6000 74 110
16 18 -4 6000 78 110
17 -14 5 6000 90 110
18 -3 -10 6000 55 110
19 -13 -3 6000 65 110
20 14 6 6000 73 100
...
x
とy
は木のアンサンブル内の樹木のデカルト座標です。 ID
は、これらのアンサンブルのそれぞれの個人識別です。 Code
およびD
はまだ関連していないパラメータです。
今アンサンブルの境界を構成するツリーのみからなるdata.frame
を得るために、それぞれのアンサンブルにfuction chull()
を適用しようとしています。すべてのIDのためにこのような何か:
x1 <- c(12,-10,-3,-5,-3, 18,-14,-3,-13,14)
y1 <- c(-3,-4,-11,-12,-13,-4,5,-10,-3,6)
ID1 <- c(5088,5088,5088,5088,5088,5088,5088,5088,5088,5088)
D1 <- c(59,49,70,40,74,78,90,55,65,73)
Code1 <- c(110,110,110,130,110,110,110,110,110,100)
df1 <- data.frame(x1,y1,ID1,D1,Code1)
hullpts <- chull(df1)
df1[hullpts,]
x1 y1 ID1 D1 Code1
6 18 -4 5088 78 110
5 -3 -13 5088 74 110
4 -5 -12 5088 40 130
9 -13 -3 5088 65 110
7 -14 5 5088 90 110
10 14 6 5088 73 100
私は成功せずfor()
残念ながらnlme::gapply()
でループを作成しようとしてきました。
私は非常に助けに感謝します。
[リンク](https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/gapply.html) – nic