【发布时间】:2014-06-04 20:56:51
【问题描述】:
我在 R 中有一个数据框,我需要对第二到第五列的每一行进行独立排序。
例如,我有以下
1 2 3 1 4 5
2 1 3 2 6 7
3 7 2 1 3 2
...
我需要得到
1 1 2 3 4 5
2 1 2 3 6 7
3 1 2 2 3 7
...
如何快速漂亮地做到这一点?
【问题讨论】:
我在 R 中有一个数据框,我需要对第二到第五列的每一行进行独立排序。
例如,我有以下
1 2 3 1 4 5
2 1 3 2 6 7
3 7 2 1 3 2
...
我需要得到
1 1 2 3 4 5
2 1 2 3 6 7
3 1 2 2 3 7
...
如何快速漂亮地做到这一点?
【问题讨论】:
这样的东西可能有用
> 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
其中df 是一个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)
【讨论】:
cbind, df[-1] <- t(apply(df[-1], 1, sort))