原始数据
rawdata <- read.table(text = "segment type x y
kl a 1 3
kl a 2 1
kl a 3 10
kl a 6 3
kl a 8 2
kl a 4 6
kl a 3 5
kl a 2 4
kl a 7 10
mk d 1 3
mk d 2 1
mk d 3 9
mk d 6 3
mk d 8 2
mk d 4 6
mk d 3 5
mk d 2 4
mk d 7 6
mk d 9 1
mk d 10 10", header = T)我想循环rawdata$type,它将绑定a和d的所有外部点。
外点公式:
x <- data.frame(rawdata$x,rawdata$y)
plot(x)
chx <- chull(x)
chx <- data.frame(rbind(x = x[chx, ], x[chx[1], ]))
lines(chx)
chx发布于 2016-05-04 08:12:40
这将按类型创建一个chull:
par(mfrow = c(1,length(unique(rawdata$type))))此par设置仅用于绘图目的(因此,地块将并排排列)。
for (i in unique(rawdata$type)) {
x <- data.frame(rawdata$x[rawdata$type == i],rawdata$y[rawdata$type == i])
plot(x, main = i)
chx <- chull(x)
chx <- data.frame(rbind(x = x[chx, ], x[chx[1], ]))
lines(chx)
print(i)
print(chx)
}输出如下所示:

还可以通过添加
save(chx, file = paste("chull_type_", i, ".RData", sep = ""))在循环中,如果需要的话,稍后再对它们进行load()。
https://stackoverflow.com/questions/37021459
复制相似问题