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
157 views
in Technique[技术] by (71.8m points)

dataframe - Sort second to fifth column for each row in R

I have a data frame in R, and I need to sort each row for the second to fifth column independently.

For example, I have the following

1 2 3 1 4 5
2 1 3 2 6 7
3 7 2 1 3 2
...

and I need to get

1 1 2 3 4 5
2 1 2 3 6 7
3 1 2 2 3 7
...

How to do this quickly and beautifully?

See Question&Answers more detail:os

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

1 Reply

0 votes
by (71.8m points)

Something like this may be useful

> cbind(df[,1], t(apply(df[,-1], 1, sort)))
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    2    3    4    5
[2,]    2    1    2    3    6    7
[3,]    3    1    2    2    3    7

where df is a data.frame:

df <- read.table(text="1 2 3 1 4 5
2 1 3 2 6 7
3 7 2 1 3 2", header=FALSE)

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

1.4m articles

1.4m replys

5 comments

57.0k users

...