2015-11-01 48 views
1

我想一列移動到數據幀的結束,我掙扎[R移動指定的列到數據幀的結束

output_index <- grep(output, names(df)) df <- cbind(df[,-output_index], df[,output_index])

這正常定單數據,它將數據轉換爲不起作用的矩陣。我該如何做到這一點,而不會丟失列名並將數據保存爲數據框。

+1

在數據幀的子集刪除逗號即'DF [-output_index]''未DF [, - output_index ]' –

+0

@RichardScriven - 這是真的嗎? 'is.data.frame(cbind(iris [, - 1],iris [,1]))'returns'TRUE' - 你失去了名字,是的,但它仍然是一個'data.frame' – thelatemail

+1

誰知道。沒有可重複的例子很難說。也許只有兩列開頭。然後他們都會在'cbind'之前掉到矢量上。 –

回答

0

並不需要,在索引的前面:

output_index <- grep(output, names(df)) df <- cbind(df[-output_index], df[output_index])

0
df <- data.frame(id=1:10, output=rnorm(10,1,1), input=rnorm(10,1,1)) 
output_index <- grep("output", names(df)) 
res.df <- cbind(df[,-output_index], df[,output_index])