r - colMeans(x, na.rm = TRUE) 中的错误:“x”必须是数字
问题描述
我正在尝试进行聚类分析,这需要我缩放/标准化我的数据。数据在矩阵中并且是数字的,但是我只收到以下消息:
Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric
最初,有一列包含分类数据,所以我删除了它,认为这可以解决问题,但我仍然收到错误。
以下是脚本块和 6 行数据。任何帮助将不胜感激。
Metals <- as.matrix(d)
rownames(Metals)<-d$RowLabs
cols_to_keep <-c(FALSE,TRUE,TRUE,TRUE,TRUE,TRUE)
Metals<-Metals[,cols_to_keep]
head(Metals)
X88Sr_umol_molCa X25Mg_umol_molCa X55Mn_umol_molCa X7Li_umol_molCa
CHR1 "1748.3722" " 80.284613" " 1.353754e-01" " 3.2146056"
CLR2 "1763.6984" " 104.850260" " 4.944963e-01" " 0.2649073"
CLR3 "2245.8861" " 186.579911" " 2.124642e-01" " 1.0715352"
CLR4 "1654.9811" " 124.502777" " 4.756491e-01" " 0.2252010"
CLR5 "1447.3079" " 183.703436" " 4.734605e-01" " 2.8409970"
CLR6 "1731.3718" " 170.511088" " 1.728970e-01" " 2.5984728"
X138Ba_umol_molCa
CHR1 " 1.3426978"
CLR2 "10.3955650"
CLR3 "12.8552971"
CLR4 "12.3339241"
CLR5 " 0.9453284"
CLR6 " 2.1714244"
d <- scale(Metals)
head(Metals)
colMeans(x, na.rm = TRUE) 中的错误:“x”必须是数字
解决方案
您的数据似乎是字符。返回什么class(Metals)
?
将数据转换为数字,然后尝试该scale
功能:
Metals[] <- as.numeric(Metals)
d <- scale(Metals)
推荐阅读
- javascript - 按 2 个值对输入数组进行分组,以便使用 amchart 创建堆积条形图
- android - 如何使用 Workmanager/PeriodicWorkRequest 在间隔之间保留数据
- php - php正则表达式获取div内容
- vb.net - VB.net - 使用来自同一位置的用户填充列表框
- c# - 在 ASP.NET 核心应用程序中使用 UserManager 和 SignInManager 创建注册表单时出错
- c# - 将 Surface 转换回 Pixbuf
- php - MySQL设置会话wait_timeout,interactive_timeout在Codeigniter中不起作用
- reactjs - 如何使用 createSlice 进行 API 调用
- c# - C# Winforms 和 MySQL:使用 MySqlException 异常中的“数字”或“代码”属性在表单中显示自定义消息
- php - C++ 客户端无法使用 HTTP POST 查询将文件发送到 PHP 服务器