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