2012-01-10 7 views
1

내 데이터 집합입니다.데이터 열 정렬 R

set.seed (1234) 
mydf <- data.frame (Id = c("dis", 1:5), 

V1.a = c(0,sample(c(0, 1,2), 5, replace = T)),V1.b = c(0,sample(c(0, 1,2), 5, replace = T)), 
V2.a = c(1.5,sample(c(0, 1,2), 5, replace = T)),V2.b = c(1.5,sample(c(0, 1,2), 5, replace = T)), 
V3.a = c(2.0,sample(c(0, 1,2), 5, replace = T)),V3.b = c(2.0,sample(c(0, 1,2), 5, replace = T)), 
V4.a = c(5.0,sample(c(0, 1,2), 5, replace = T)),V4.b = c(5.0,sample(c(0, 1,2), 5, replace = T)), 
V5.a = c(6.0,sample(c(0, 1,2), 5, replace = T)),V5.b = c(6.0,sample(c(0, 1,2), 5, replace = T)), 
V16a = c(11.0,sample(c(0, 1,2), 5, replace = T)),V6.b = c(11.0,sample(c(0, 1,2), 5, replace = T)), 
V7.a = c(12.0,sample(c(0, 1,2), 5, replace = T)),V7.b = c(12.0,sample(c(0, 1,2), 5, replace = T)), 
V8.a = c(3.0,sample(c(0, 1,2), 5, replace = T)),V8.b = c(3.0,sample(c(0, 1,2), 5, replace = T))) 

d = mydf 
> d 
    Id V1.a V1.b V2.a V2.b V3.a V3.b V4.a V4.b V5.a V5.b V16a V6.b V7.a V7.b V8.a 
1 0 0 0 1.5 1.5 2 2 5 5 6 6 11 11 12 12 3 
2 1 1 2 1.0 0.0 1 2 1 2 0 1 1 2 0 1 1 
3 2 1 1 2.0 2.0 1 2 0 1 0 1 1 1 0 2 0 
4 3 0 0 1.0 2.0 2 0 2 2 2 2 2 1 1 2 0 
5 4 0 2 0.0 2.0 2 2 1 1 2 2 2 1 2 1 0 
6 5 2 1 2.0 0.0 2 0 1 1 0 1 0 0 0 2 1 
    V8.b 
1 3 
2 2 
3 0 
4 2 
5 0 
6 2 

각 변수의 첫 번째 행 요소에서 값으로 정렬하고자했습니다.

> d <- d[,order(d[1,-1])] 
> d 
    Id V1.a V1.b V2.a V2.b V3.a V7.b V8.a V3.b V4.a V4.b V5.a V5.b V16a V6.b V7.a 
1 0 0 0 1.5 1.5 2 12 3 2 5 5 6 6 11 11 12 
2 1 1 2 1.0 0.0 1 1 1 2 1 2 0 1 1 2 0 
3 2 1 1 2.0 2.0 1 2 0 2 0 1 0 1 1 1 0 
4 3 0 0 1.0 2.0 2 2 0 0 2 2 2 2 2 1 1 
5 4 0 2 0.0 2.0 2 1 0 2 1 1 2 2 2 1 2 
6 5 2 1 2.0 0.0 2 2 1 0 1 1 0 1 0 0 0 

V7.a!가 작동하지 않습니다. V8.a가 누락되었습니다. 다른 방법으로 문제를 해결하거나 좋은 방법은 무엇입니까?

답변

4

이 반환하는 정수 벡터는 d[,-1] 데이터 (첫 번째 열이 제거 된 d)를 나타냅니다. 그런 다음 해당 벡터를 사용하여 d의 열을 색인화하면 의미가없는 열의 정렬이 발생하며 최종 열은 모두 손실됩니다.

이 문제를 해결해야합니다

d[,c(1, 1+ order(d[1,-1]))]