2015-01-08 81 views
2

設置我有這樣一個數據幀:如何訂購數據中的R

dataset <- data.frame(COL1 = c(1,2,3,4), COL2 = c(4,3,2,1)) 

然後我試圖訂購吧,像這樣:

dataset <- dataset[order(-COl1),] 

然而,這導致一個錯誤因爲很明顯COL1不存在:

Error in order(-COl1) : object 'COl1' not found 

如果我更改數據集的聲明:

dataset <- data.frame(COL1 <- c(1,2,3,4), COL2 <- c(4,3,2,1)) 

它工作正常!但是,問題在於數據集聲明是由另一個程序生成的,所以我無法更改它。有沒有辦法以一種方式重新聲明數據集,以便我可以正確地訂購它?

+0

您可以使用'with'或'$''dataset [with(dataset,order(-COL1)),]'。順便說一句,你沒有列'COl1',它是'COL1'(可能是一個錯字) – akrun

+0

@akrun完美!這工作 - 感謝您的及時答案。如果您想將其添加爲答案,我會將其標記爲正確! – user1578653

+0

謝謝,我添加爲答案。 – akrun

回答

1

您可以使用with$[,即

dataset[with(dataset, order(-COL1)),] 

或者

dataset[order(-dataset$COL1),] 

或者

dataset[order(-dataset['COL1']),] 

或者

library(data.table) 
setorder(setDT(dataset), -COL1)