Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
440 views
in Technique[技术] by (71.8m points)

r - Order dataframe for given columns

I have data similar to these:

data <- data.frame(x1=rexp(10,2),y1=rnorm(10,1),x2=rexp(10,2),y2=rnorm(10,1),x3=rexp(10,2),y3=rnorm(10,1),x4=rexp(10,2),y4=rnorm(10,1))

I would like to order all y1,y2... variables in increasing order.

I have tried this among others:

data[with(data,order(y1,y2,y3,y4,decreasing=FALSE)), ]

There is number of SO contribution for example here about order, yet I cannot make it work.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You could try

indx <- do.call(order, c(data[grep('^y', names(data))], decreasing=TRUE))
data[indx,] 

By default, the option is decreasing=FALSE. If that is what you wanted, just do

indx <- do.call(order, data[grep('^y', names(data))])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...