2013-08-09 2 views
0

말을 연속 변수 대 범주 분리 할 수있는 간단한 방법이 있을까요, 그리고 내 모델 변수 선택을 할 노력하고있어 나는내가 약 500 변수 가능한 R에 두 개의 데이터 세트에

(응답은 바이너리) 모든 연속성에 대한 일종의 corr 분석을 계획하고, 그 다음에 범주 형 분석을 수행합니다.

많은 변수가 포함되어 있으므로 수동으로 할 수 없습니다.

사용할 수있는 기능이 있습니까? 아니면 모듈일까요?

+1

범주 형 변수가 이미 요소 또는 문자로 저장되어 있습니까? – Dason

+2

당신은 범주적이고 연속적인 정의가 무엇인지 설명해야합니다. – eddi

답변

3

나는 Riris 데이터 세트를 사용하고 있습니다. 그렇다면

sapply(iris, is.factor) 
Sepal.Length Sepal.Width Petal.Length Petal.Width  Species 
     FALSE  FALSE  FALSE  FALSE   TRUE 

당신의 열이 요인인지 아닌지 알려줍니다. 따라서

iris[ ,sapply(iris, is.factor)] 

을 선택하면 요인 열만 선택할 수 있습니다. 및

iris[ ,!sapply(iris, is.factor)] 

은 요소가 아닌 해당 열을 제공합니다. is.numeric, is.character 및 다른 다른 버전을 사용할 수도 있습니다.

1

str(df)을 사용하여 어떤 열이 요인이고 어떤 열이 중요하지 않은지 확인할 수 있습니다 (df는 데이터 프레임 임). 예를 들어, 데이터 R의 홍채를 위해 :

str(iris) 
'data.frame': 150 obs. of 5 variables: 
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... 
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... 
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... 
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... 
$ Species  : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ... 

또는, 당신은 더 적은 전체의 몇 가지 부분보다 고유 한 값의 수에 대한 논리적 반환하는 함수를 작성 lapply(iris,class)

$Sepal.Length 
[1] "numeric" 

$Sepal.Width 
[1] "numeric" 

$Petal.Length 
[1] "numeric" 

$Petal.Width 
[1] "numeric" 

$Species 
[1] "factor" 
1

을 사용할 수 있습니다 그리고 난 ' data.frame 이제

discreteL <- function(x) length(unique(x)) < 0.05*length(x) 

sapply 그것 (연속 변수 부정 사용) : m 5 % 따기

,536,
> str(iris[ , !sapply(iris, discreteL)]) 
'data.frame': 150 obs. of 4 variables: 
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... 
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... 
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... 
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... 

내가 생각하는 기준으로 특정 숫자, 예를 들어 15를 선택할 수 있습니다.

통계 이론에 따르면이 절차가 설명 된 목적을 위해 위험하다는 것을 알 수 있습니다. 바이너리 응답과 가장 관련이있는 변수를 선택하는 것만으로는 충분하지 않습니다. 변수 선택에 대한 더 나은 접근법을 보여주는 많은 연구가있었습니다. 그래서 제 대답은 실제로 분리를 수행하는 방법 일 뿐이지 만 모호하게 묘사 한 전반적인 계획을지지하는 것은 아닙니다.

+0

이것은 모든 범주 적 값이 뚜렷한 ID 번호와 같은 경우에는 작동하지 않을 수 있습니다. – Henry

+0

True 'nuff. 나는 또한'table (diff (x))'를 볼 수 있다고 가정한다. –

관련 문제