2013-02-05 5 views
0

SPSS에 100K + 행과 100 개 이상의 열이있는 데이터 세트가 있습니다. 나는 행과 열을 동시에 새로운 SPSS 데이터 세트로 필터링하려고합니다.SPSS에서 행과 열 선택

내가 예를 들어 R.에서 subset 명령을 사용하여 매우 쉽게 수행 할 수 있습니다 : 더 쉬운

new_data = subset(old_data, select = ColumnA >10, select = c(ColumnA, ColumnC, ColumnZZ)) 

은 다음과 같습니다 내가 대신 열 인덱스를 통과하고

new data = old_data[old_data$ColumnA >10, c(1, 4, 89)] 

.

SPSS에서는 무엇이 해당합니까?

저는 R이 좋지만 SPSS의 읽기/쓰기 및 데이터 관리 속도가 훨씬 뛰어납니다.

+6

을 당신은 SPSS는 R –

+3

보다 더 아무것도에 대한 잘못된 경우 읽기/쓰기 SPSS의 데이터 관리 속도가 훨씬 더 빠르며 읽기/쓰기 및 데이터 관리를 실제로 즐기거나 인생에서의 목적이 읽기/쓰기 및 데이터 관리를 수행하고 실제 데이터 분석을 수행하지 않는 경우 SPSS ELSE 사용 R. – Spacedman

+0

* 데이터베이스에서 선택, 집계 및 시퀀스 표시 만들기가 훨씬 빠릅니다. 그 이상으로 나는 SPSS를 아무렇지도 않게 피한다. 여분의 마일가는 것에 대한 – Btibert3

답변

4

R보다 "SPSS의 읽기/쓰기 및 데이터 관리 속도가 현저히 우수합니다"라고 쓰여있을 때 정확히 무엇을 언급하는지 모르겠습니다. 귀하의 질문 자체가 데이터 관리에서 얼마나 유연한지를 보여줍니다! 그리고 100k 행 100 열의 데이터 세트는 결코 큰 데이터 세트가 아닙니다.

그러나 질문에 대답하기 위해 아마도 이와 같은 것을 찾고있을 것입니다. GUI 오버레이보다는 프로그래밍 방식의 솔루션을 제공합니다. 스택 오버플로에 대한 질문을하기 때문에, 프로그래밍 측면에 초점을 맞추고 있습니다. , 더 많은 가능성이

GET FILE='p004.sav'. 
SELECT IF (lactatio <= 3). 
SAVE OUTFILE= 'mynewdatafile.sav' 
    /KEEP currentm previous lactatio. 
GET FILE='mynewdatafile.sav'. 

다음, 당신의 SPSS 작업 디렉토리에이 파일을 저장 http://www.ats.ucla.edu/stat/spss/examples/chp/p004.sav

하여 SPSS 구문 편집기를 열고 입력 : 나는 여기에서 찾을 수있는 샘플 데이터 파일을 사용하고 있습니다 하지만,이 같은 것을 통과해야합니다 :

FILE HANDLE directoryPath /NAME='C:\path\to\working\directory\' . 
FILE HANDLE myFile /NAME='directoryPath/p004.sav' . 
GET FILE='myFile'. 
SELECT IF (lactatio <= 3). 
SAVE OUTFILE= 'directoryPath/mynewdatafile.sav' 
    /KEEP currentm previous lactatio. 
FILE HANDLE myFile /NAME='directoryPath/mynewdatafile.sav'. 
GET FILE='myFile'. 

는 이제 단지 세 개의 열이 만든 새 파일을 가지고 있어야하고, "lactatio"열의 값보다 큰 3.

없는 곳에

그래서, 기본 단계는 다음과 같습니다

  1. 로드 작업 할 데이터입니다. 관심있는 모든 경우에서 모든 열에 대한
  2. 부분 집합.
  3. 는 관심있는 변수 만에 새 파일을 저장합니다. 새 파일 계속 진행하기 전에
  4. 로드.

는 R로, 기본 단계는 다음과 같습니다

  1. 로드 작업 할 데이터입니다.
  2. 행과 열의 하위 집합으로 개체를 만듭니다 (수행 방법을 알고 있음).

흠 ....당신은 R과 올바른 도구를 사용하는 경우 사용자가 직접 당신이하지에 관심이에 특정 하위 집합을 읽을 수

) 나는 당신에 대해 잘 모르지만, 내가 선호하는 방법 알고 속도가 실제로 문제가된다면 먼저 전체 데이터 세트를로드하십시오.

SPSS에서
+1

+1. –

+0

의심 스럽지만 임시 파일을 만들어야합니다. 훌륭한 반응에 감사드립니다! – Btibert3

+0

이 답변은 불필요하게 복잡합니다. 나는 R이 여러면에서 더 나아 졌다는 것에 동의하지만 이것은 SPSS 기능의 공정한 그림이 아닙니다 (더 나은 답변을 보려면 제 대답을보십시오) –

0

당신이 하나의 명령에 두 개의 작업을 결합 할 수 있지만,이 두 그것을 쉽게 충분 :

dataset copy old_data. /* delete this if you don't need to keep both old and new data. 
select if ColumnA>10. 
add files /file=* /keep=ColumnA ColumnC ColumnZZ.