问题描述
我正在尝试缩放训练数据集中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 (将#修改为@)