“中心”的长度必须等于火车和测试中“ x”的列数

问题描述

我正在尝试缩放训练数据集中R中的几列,并将均值和标准差应用于测试数据集。 这是示例代码

采用的第一列(2)是一个整数,其余全为double。总行数2966

train_data[c(2,10,11,12,13,14,15)]=lapply(train_data[c(2,15)],function(x) c(scale(x)))

我正在尝试使用以下代码将缩放后的属性应用于测试数据:

test_data[c(2,15)]=lapply(test_data[c(2,function(x) c(scale(x,center=attr(train_data,"scaled:center"),scale=attr(train_data,"scaled:scale"))))

但是,我得到一个错误'center'的长度必须等于'x'的列数

我认为对测试数据进行子集处理的方式是错误的。因此,尝试使用简单的数据集,我得到了相同的错误

justrain=data.frame(sample(8:100,size=20)) 
justest=data.frame(sample(30:250,size=20))
justrain1=as.data.frame(scale(justrain)) #data got scaled'

justest1=scale(justest,center=attr(justrain1,scale=attr(justrain1,"scaled:scale"))

我遇到了同样的错误 scale.default(认值,最正,居中= attr(justrain1,“ scaled:center”)),存在错误: “中心”的长度必须等于“ x”的列数

有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)