这是一个奇怪的请求,但我有一个特定的需要,我试图解决。
让我假装我有一个包含50列的数据框。每列的列号(或索引)分别为1:50。有没有办法可以为50个中的每一个分配新的列号?让我们说我希望第一列的列号为187.这可能吗?
我有一个预测模型,在构建时会记住用于构建模型的每个变量的列位置,而不是变量名称。在我的原始数据集中,我有1,559个变量来构建模型,但只有50个被选为最终模型的一部分。该模型记住每个变量位置作为1,559的函数,但是当我去获取新数据时,它正在寻找1559个变量而不是我带入我的得分范围的50个变量。
我保存了每个变量的原始位置编号,所以我希望我只能将列号分配给只有50个变量的数据集。我有一个解决方法,我用1559列构建一个大的空数据帧,然后将数据放入正确的列#然后对数据进行评分,但在这种情况下我有300万条记录得分,而且我没有足够的RAM来构建一个3M行,1559列数据帧。
答案 0 :(得分:0)
您可以直接通过data[,c(ORDER YOU WANT THEM TO BE IN)]
例如:
head(cars)
VS
head(cars[,c(2,1)])