[英]How to calculate centroid of group of points in R?
在 Python 中,你可以有一個像lst = [[0, 1, 2], [2, 3, 4]]
。
要在此計算質心,您可以使用以下代碼:
n = len(lst[0])
centroid = [0]*n
def centroid(*args):
for i in range(n):
_sum = sum([element[i] for element in lst])
centroid[i] = _sum/len(lst)
return centroid
get_centroid(lst)
通常如何在 R 中為一組點做同樣的事情? 即如何創建相同的功能?
似乎他們將質心坐標計算為相應維度上的平均值,因此
lst <- list(c(0, 1, 2),c(2, 3, 4))
calcCentroid <- function(pointList) {
rowMeans(do.call("cbind",pointList))
}
calcCentroid(lst)
應該做的工作。 我假設你有一個list
的點,每個點都有相同的length
。 然后,您可以將它們全部組合成一個數字矩陣。 它的列包含點。 然后你可以執行一個 rowwise mean,這在R
可以通過rowMeans
來完成,這是一個高度優化的函數,專門用於這項工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.