r - 为什么我的矩阵不能从字符转换为数字?
问题描述
我正在尝试标准化我的数据以用于神经网络。我的数据 train0 具有所有整数或双精度类型列,除了最后一个是一个因素。这是我尝试过的。
n <- ncol(train0)-1
y_train <- train0$ffail
x_train <- as.matrix(train0[,4:n])
range_norm <- function(x) {
( (x - min(x)) / (max(x) - min(x)) )}
# Normalize training and test data
x_train_norm <- apply(x_train, 2, range_norm)
但我不断收到此错误:Error in x - min(x) : non-numeric argument to binary operator
我已经检查了 x_train 中每一列的类型,它说明了它们的所有字符,所以我尝试像这样转换为数字
for(i in 1:ncol(x_train)){
x_train1[,i] <- as.numeric(x_train[,i])
print(typeof(x_train1[,i]))
}
但是,在我使用 之后as.numeric
,我打印要检查的每一列的类型,它们仍然是字符。
在尝试规范化数据以及如何将数据转换为数字矩阵方面,我将不胜感激。谢谢
解决方案
这是将矩阵转换为character
矩阵的一种方法numeric
:
m = matrix(as.character(1:9), 3, 3)
m
## [,1] [,2] [,3]
## [1,] "1" "4" "7"
## [2,] "2" "5" "8"
## [3,] "3" "6" "9"
apply(m, 2, as.numeric)
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
推荐阅读
- kotlin - RxJava:单曲列表
- google-cloud-platform - 谷歌云控制台不允许在 mysql 5.7 中设置 innodb_log_file_size 标志
- sql - 根据多个条件计算日期之间的天数
- wordpress - 如何在特定页面的简码中显示 Html - 该页面是 Woocommerce 商店页面
- ios - 图像不直接进入数组
- reactjs - react-google-maps 钩子和 getBound()
- python - if inside while 的漏洞
- javascript - 如何使用 ref 转发键入复合组件
- angular - 文档未定义 Angular
- angular - 连接自定义搜索服务,而不是 ng-select 中的默认搜索