簡體   English   中英

聚類分析:colMeans(x, na.rm = TRUE) 錯誤:'x' 必須是數字

[英]Cluster analysis: Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric

我有一個 dataframe

df <- data.frame(Name = c("Opossum","Hairy tail mole", "Common mole", "Star nose mole"),I = c(5,3,3,3),i = c(4,3,2,3),C = c(1,1,1,1),c = c(1,1,0,1),P = c(3,4,3,4),p = c(3,4,3,4),M = c(4,3,3,3),m = c(4,3,3,3))

我正在嘗試實施聚類分析。 在使用縮放數據集時

data <- scale(data)但我收到錯誤:colMeans(x, na.rm = TRUE) 錯誤:'x' 必須是數字。 是什么原因?

你的錯誤說你的數據應該是numeric 您的第一列是一個字符,這意味着您不需要 select 該列。 正如@DaveArmstrong 在評論中建議的那樣,您可以使用以下代碼執行此操作:

df <- data.frame(Name = c("Opossum","Hairy tail mole", "Common mole", "Star nose mole"),I = c(5,3,3,3),i = c(4,3,2,3),C = c(1,1,1,1),c = c(1,1,0,1),P = c(3,4,3,4),p = c(3,4,3,4),M = c(4,3,3,3),m = c(4,3,3,3))

data <- scale(df[,-1])
data

Output:

       I         i   C    c          P          p    M    m
[1,]  1.5  1.224745 NaN  0.5 -0.8660254 -0.8660254  1.5  1.5
[2,] -0.5  0.000000 NaN  0.5  0.8660254  0.8660254 -0.5 -0.5
[3,] -0.5 -1.224745 NaN -1.5 -0.8660254 -0.8660254 -0.5 -0.5
[4,] -0.5  0.000000 NaN  0.5  0.8660254  0.8660254 -0.5 -0.5
attr(,"scaled:center")
   I    i    C    c    P    p    M    m 
3.50 3.00 1.00 0.75 3.50 3.50 3.25 3.25 
attr(,"scaled:scale")
        I         i         C         c         P         p         M         m 
1.0000000 0.8164966 0.0000000 0.5000000 0.5773503 0.5773503 0.5000000 0.5000000 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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