2016-10-10 3 views
1

객체 클래스를 기반으로 df을 정렬 할 수 있습니까? 말R : 객체 클래스별로 열 정렬

data("mtcars") 
mtcars$cyl <- as.factor(mtcars$cyl) 
mtcars$vs <- as.factor(mtcars$vs) 
mtcars$am <- as.factor(mtcars$am) 
sapply(mtcars,class) 

모든 숫자 변수를 먼저 입력 한 다음 모든 요소를 ​​끝에 표시 하시겠습니까? 훨씬 큰 데이터 세트에서이 작업을 수행 할 수 있기를 원하므로 열 번호별로 부분 집합에 의존하지 않는 솔루션을 선호합니다. 건배.

답변

0

아마도이 하나입니까? 당신이 보는대로 x에서

head(mtcars) 

        # mpg cyl disp hp drat wt qsec vs am gear carb 
# Mazda RX4   21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 
# Mazda RX4 Wag  21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 
# Datsun 710  22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 
# Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 
# Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 
# Valiant   18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 

x <- mtcars[,names(sort(unlist(lapply(mtcars, class)), decreasing = T))] 

head(x) 
        # mpg disp hp drat wt qsec gear carb cyl vs am 
# Mazda RX4   21.0 160 110 3.90 2.620 16.46 4 4 6 0 1 
# Mazda RX4 Wag  21.0 160 110 3.90 2.875 17.02 4 4 6 0 1 
# Datsun 710  22.8 108 93 3.85 2.320 18.61 4 1 4 1 1 
# Hornet 4 Drive 21.4 258 110 3.08 3.215 19.44 3 1 6 1 0 
# Hornet Sportabout 18.7 360 175 3.15 3.440 17.02 3 2 8 0 0 
# Valiant   18.1 225 105 2.76 3.460 20.22 3 1 6 1 0 

, 클래스 factor의있는 열 cyl, vsam는 말에 장소와 일류 numeric의 것들이다.

+1

새로운'df'에 할당해야한다고 말하려고했지만 이미 업데이트했습니다. 이것은 나를 위해 일하는 것 같아, 분명히 대답으로 받아들이 기 전에 5 분을 더 기다려야한다. – rfsrc