簡體   English   中英

如何計算R中點組的質心?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM