Я хотел бы рассчитать сотни выпуклых объемов корпуса в R, не создавая отдельные кадры данных для каждого расчета.Вычисление множества выпуклых объемов корпуса с использованием convhulln в R
Вот упрощенный пример: Я в настоящее время кадра данных с df
3 колонки: Group
, X
, Y
.
Group<-c(rep("Frank",times=6),rep("Greg",times=11),rep("Stacy",times=3),rep("Nancy",times=10))
X<-c(4,5,3,5,7,4,8,23,4,7,5,2,8,5,8,3,6,5,4,6,8,9,2,5,8,3,6,3,3,4)
Y<-c(7,9,3,6,4,8,7,8,6,3,2,3,6,7,4,6,8,9,5,7,8,9,6,5,4,6,7,8,3,6)
df<-data.frame(Group,as.numeric(X),as.numeric(Y))
Для каждой переменной в Group
Я хотел бы, чтобы вычислить выпуклый объем корпуса от X
и Y
данных в df
. Каждая переменная Group
имеет разную длину x,y
точек. Длинный маршрут для расчета этих томов, который я делал, заключался в том, чтобы создавать отдельные data.frames для каждого Group
. Например:
Frank.frame<-cbind(df$X[df$Group=="Frank"],df$Y[df$Group=="Frank"])
Затем я вычислил выпуклый объем корпуса из этих данных
library(geometry)
convhulln(Frank.frame, option="FA")$vol
Мой вопрос: могу ли я выполнять все convhulln
расчеты с использованием оригинального df
, или это требует, чтобы я анализирую эти индивидуальные Groups
отдельно?
Я попытался зациклиться на этом, хотя не могу определить отдельные группы, и вместо этого получаю общий объем выпуклого корпуса.
for(i in 1:length(unique(df$Group))){
z[i]<-convhulln(cbind(df$X,df$Y),option="FA")$vol
}