我想通過一些列
df<-data.frame("Sp1"=c(7,4,2),"Sp2"=c(6,2,1))
row.names(df)<-c("A01","A02","A03")
Sp1 Sp2
A01 7 6
A02 4 2
A03 2 1
#I am using
df[with(df, order("Sp1"))]
然而,這確實給排序data.frame沒有。任何想法爲什麼?謝謝
我想通過一些列
df<-data.frame("Sp1"=c(7,4,2),"Sp2"=c(6,2,1))
row.names(df)<-c("A01","A02","A03")
Sp1 Sp2
A01 7 6
A02 4 2
A03 2 1
#I am using
df[with(df, order("Sp1"))]
然而,這確實給排序data.frame沒有。任何想法爲什麼?謝謝
Sp1
當您使用with
時不應引用。這總是會返回1
,因此只是返回您的第一行。試試這個:
> df[order(df$Sp1),]
Sp1 Sp2
A03 2 1
A02 4 2
A01 7 6
> df[with(df, order(Sp1)), ]
Sp1 Sp2
A03 2 1
A02 4 2
A01 7 6
謝謝你 – Elizabeth 2012-07-22 12:07:10
您也可以嘗試doBy
包中使用另一個bult的函數:
# install.packages('doBy')
library(doBy)
orderBy(Sp1~Sp2, data=df)
Sp1 Sp2
A03 2 1
A02 4 2
A01 7 6
您應該使用庫(plyr)和命令 - 安排(DF,SP1,SP2 )。易於記憶,速度也很快。 – RHelp 2014-03-19 12:04:06