File: spss.Rout.save

package info (click to toggle)
foreign 0.8.40-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 1,576 kB
  • ctags: 657
  • sloc: ansic: 6,997; asm: 4; sh: 2; makefile: 1
file content (323 lines) | stat: -rw-r--r-- 14,192 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323

R version 2.9.0 Under development (unstable) (2009-01-28 r47758)
Copyright (C) 2009 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(foreign)
> 
> sample100 <- read.spss("sample100.sav",FALSE)
> summary(sample100)
         Length Class  Mode     
YEAR     100    -none- numeric  
DISTRICT 100    -none- numeric  
CAMPUS   100    -none- numeric  
DNAME    100    -none- character
CNAME    100    -none- character
SEX      100    -none- character
DISADVG  100    -none- character
ETHNICTY 100    -none- character
STUID    100    -none- character
TLIMTH   100    -none- numeric  
GRADE    100    -none- numeric  
> str(sample100)
List of 11
 $ YEAR    : num [1:100] 99 94 94 95 96 97 98 99 94 95 ...
 $ DISTRICT: num [1:100] 57914 57914 57914 57914 57914 ...
 $ CAMPUS  : num [1:100] 57914045 57914106 57914110 57914123 57914117 ...
 $ DNAME   : chr [1:100] "MESQUITE ISD   " "MESQUITE ISD   " "MESQUITE ISD   " "MESQUITE ISD   " ...
 $ CNAME   : chr [1:100] "A C NEW MIDDLE " "MCWHORTER EL   " "RUTHERFORD EL  " "JOEY M PIRRUNG " ...
 $ SEX     : chr [1:100] "F" "F" " " "F" ...
 $ DISADVG : chr [1:100] "NO " "NO " "   " "NO " ...
 $ ETHNICTY: chr [1:100] "WHITE   " "WHITE   " "        " "HISPANIC" ...
 $ STUID   : chr [1:100] "00614371S" "00614372S" "00614373S" "00614373S" ...
 $ TLIMTH  : num [1:100] 90 86 67 77 77 79 86 87 89 85 ...
 $ GRADE   : num [1:100] 8 3 3 4 5 6 7 8 3 4 ...
 - attr(*, "label.table")=List of 11
  ..$ YEAR    : NULL
  ..$ DISTRICT: NULL
  ..$ CAMPUS  : NULL
  ..$ DNAME   : NULL
  ..$ CNAME   : NULL
  ..$ SEX     : NULL
  ..$ DISADVG : NULL
  ..$ ETHNICTY: NULL
  ..$ STUID   : NULL
  ..$ TLIMTH  : NULL
  ..$ GRADE   : NULL
 - attr(*, "variable.labels")= Named chr [1:11] "YEAR OF ADMINISTRATION" "COUNTY DISTRICT NUMBER" "COUNTY DISTRICT CAMPUS NUMBER" "DISTRICT NAME" ...
  ..- attr(*, "names")= chr [1:11] "YEAR" "DISTRICT" "CAMPUS" "DNAME" ...
> d.sample100 <- data.frame(sample100)
> summary(d.sample100)
      YEAR           DISTRICT          CAMPUS                      DNAME   
 Min.   :  94.0   Min.   : 57905   Min.   : 57905126   DALLAS ISD     : 1  
 1st Qu.:  95.0   1st Qu.: 57914   1st Qu.: 57914046   HARMONY ISD    : 1  
 Median :  96.0   Median : 57914   Median : 57914112   MESQUITE ISD   :96  
 Mean   : 115.4   Mean   : 59644   Mean   : 59644015   SUNNYVALE ISD  : 2  
 3rd Qu.:  98.0   3rd Qu.: 57914   3rd Qu.: 57914125                       
 Max.   :2000.0   Max.   :230905   Max.   :230905101                       
                                                                           
             CNAME    SEX    DISADVG      ETHNICTY        STUID   
 J C AUSTIN EL  :23    : 4      : 4           : 4   00614373S: 6  
 R S KIMBROUGH M:12   F:62   NO :90   HISPANIC: 3   00614378S: 6  
 WILKINSON MIDDL: 9   M:34   YES: 6   OTHER   : 2   00614379S: 6  
 VERNON PRICE EL: 7                   WHITE   :91   00614389S: 6  
 TISINGER EL    : 6                                 00614397S: 6  
 THOMPSON EL    : 5                                 00614403S: 6  
 (Other)        :38                                 (Other)  :64  
     TLIMTH          GRADE     
 Min.   :54.00   Min.   :3.00  
 1st Qu.:74.00   1st Qu.:4.00  
 Median :84.00   Median :5.00  
 Mean   :80.16   Mean   :5.37  
 3rd Qu.:87.00   3rd Qu.:7.00  
 Max.   :93.00   Max.   :8.00  
                               
> s100 <- sample100
> sample100 <- read.spss("sample100.por",FALSE)
> stopifnot(identical(s100, sample100)) # no need for further summary() etc
> 
> pbc <- read.spss("pbc.sav",FALSE)
> summary(pbc)
         Length Class  Mode   
AGE      418    -none- numeric
ALB      418    -none- numeric
ALKPHOS  418    -none- numeric
ASCITES  418    -none- numeric
BILI     418    -none- numeric
CHOL     418    -none- numeric
EDEMA    418    -none- numeric
EDTRT    418    -none- numeric
HEPMEG   418    -none- numeric
TIME     418    -none- numeric
PLATELET 418    -none- numeric
PROTIME  418    -none- numeric
SEX      418    -none- numeric
SGOT     418    -none- numeric
SPIDERS  418    -none- numeric
STAGE    418    -none- numeric
STATUS   418    -none- numeric
TRT      418    -none- numeric
TRIG     418    -none- numeric
COPPER   418    -none- numeric
> str(pbc)
List of 20
 $ AGE     : num [1:418] 58.8 56.4 70.1 54.7 38.1 ...
 $ ALB     : num [1:418] 2.6 4.14 3.48 2.54 3.53 3.98 4.09 4 3.08 2.74 ...
 $ ALKPHOS : num [1:418] 1718 7395 516 6122 671 ...
 $ ASCITES : num [1:418] 1 0 0 0 0 0 0 0 0 1 ...
 $ BILI    : num [1:418] 14.5 1.1 1.4 1.8 3.4 0.8 1 0.3 3.2 12.6 ...
 $ CHOL    : num [1:418] 261 302 176 244 279 248 322 280 562 200 ...
 $ EDEMA   : num [1:418] 1 0 1 1 0 0 0 0 0 1 ...
 $ EDTRT   : num [1:418] 1 0 0.5 0.5 0 0 0 0 0 1 ...
 $ HEPMEG  : num [1:418] 1 1 0 1 1 1 1 0 0 0 ...
 $ TIME    : num [1:418] 400 4500 1012 1925 1504 ...
 $ PLATELET: num [1:418] 190 221 151 183 136 -9 204 373 251 302 ...
 $ PROTIME : num [1:418] 12.2 10.6 12 10.3 10.9 11 9.7 11 11 11.5 ...
 $ SEX     : num [1:418] 1 1 0 1 1 1 1 1 1 1 ...
 $ SGOT    : num [1:418] 137.9 113.5 96.1 60.6 113.2 ...
 $ SPIDERS : num [1:418] 1 1 0 1 1 0 0 0 1 1 ...
 $ STAGE   : num [1:418] 4 3 4 4 3 3 3 3 2 4 ...
 $ STATUS  : num [1:418] 1 0 1 1 0 1 0 1 1 1 ...
 $ TRT     : num [1:418] 1 1 1 1 2 2 2 2 1 2 ...
 $ TRIG    : num [1:418] 172 88 55 92 72 63 213 189 88 143 ...
 $ COPPER  : num [1:418] 156 54 210 64 143 50 52 52 79 140 ...
 - attr(*, "label.table")=List of 20
  ..$ AGE     : NULL
  ..$ ALB     : NULL
  ..$ ALKPHOS : NULL
  ..$ ASCITES : NULL
  ..$ BILI    : NULL
  ..$ CHOL    : NULL
  ..$ EDEMA   : NULL
  ..$ EDTRT   : NULL
  ..$ HEPMEG  : NULL
  ..$ TIME    : NULL
  ..$ PLATELET: NULL
  ..$ PROTIME : NULL
  ..$ SEX     : NULL
  ..$ SGOT    : NULL
  ..$ SPIDERS : NULL
  ..$ STAGE   : NULL
  ..$ STATUS  : NULL
  ..$ TRT     : NULL
  ..$ TRIG    : NULL
  ..$ COPPER  : NULL
> d.pbc <- data.frame(pbc)
> summary(d.pbc)
      AGE             ALB           ALKPHOS         ASCITES      
 Min.   :26.28   Min.   :1.960   Min.   :   -9   Min.   :-9.000  
 1st Qu.:42.83   1st Qu.:3.243   1st Qu.:   -9   1st Qu.:-9.000  
 Median :51.00   Median :3.530   Median : 1009   Median : 0.000  
 Mean   :50.74   Mean   :3.497   Mean   : 1478   Mean   :-2.225  
 3rd Qu.:58.24   3rd Qu.:3.770   3rd Qu.: 1708   3rd Qu.: 0.000  
 Max.   :78.44   Max.   :4.640   Max.   :13862   Max.   : 1.000  
      BILI             CHOL            EDEMA            EDTRT       
 Min.   : 0.300   Min.   :  -9.0   Min.   :0.0000   Min.   :0.0000  
 1st Qu.: 0.800   1st Qu.:  -9.0   1st Qu.:0.0000   1st Qu.:0.0000  
 Median : 1.400   Median : 252.5   Median :0.0000   Median :0.0000  
 Mean   : 3.221   Mean   : 248.2   Mean   :0.1196   Mean   :0.1005  
 3rd Qu.: 3.400   3rd Qu.: 347.8   3rd Qu.:0.0000   3rd Qu.:0.0000  
 Max.   :28.000   Max.   :1775.0   Max.   :1.0000   Max.   :1.0000  
     HEPMEG            TIME         PLATELET        PROTIME     
 Min.   :-9.000   Min.   :  41   Min.   : -9.0   Min.   : 9.00  
 1st Qu.:-9.000   1st Qu.:1093   1st Qu.:181.0   1st Qu.:10.00  
 Median : 0.000   Median :1730   Median :248.0   Median :10.60  
 Mean   :-1.900   Mean   :1918   Mean   :250.0   Mean   :10.73  
 3rd Qu.: 1.000   3rd Qu.:2614   3rd Qu.:315.5   3rd Qu.:11.10  
 Max.   : 1.000   Max.   :4795   Max.   :721.0   Max.   :18.00  
      SEX              SGOT           SPIDERS           STAGE         
 Min.   :-9.000   Min.   : -9.00   Min.   :-9.000   Min.   :-9.00000  
 1st Qu.:-9.000   1st Qu.: -9.00   1st Qu.:-9.000   1st Qu.:-9.00000  
 Median : 1.000   Median : 90.45   Median : 0.000   Median : 3.00000  
 Mean   :-1.622   Mean   : 89.20   Mean   :-2.067   Mean   :-0.01914  
 3rd Qu.: 1.000   3rd Qu.:135.75   3rd Qu.: 0.000   3rd Qu.: 4.00000  
 Max.   : 1.000   Max.   :457.25   Max.   : 1.000   Max.   : 4.00000  
     STATUS            TRT              TRIG           COPPER     
 Min.   :0.0000   Min.   :-9.000   Min.   : -9.0   Min.   : -9.0  
 1st Qu.:0.0000   1st Qu.:-9.000   1st Qu.: -9.0   1st Qu.: -9.0  
 Median :0.0000   Median : 1.000   Median : 85.0   Median : 50.5  
 Mean   :0.3852   Mean   :-1.167   Mean   : 81.2   Mean   : 70.1  
 3rd Qu.:1.0000   3rd Qu.: 2.000   3rd Qu.:127.8   3rd Qu.:100.8  
 Max.   :1.0000   Max.   : 2.000   Max.   :598.0   Max.   :588.0  
> pbco <- read.spss("pbcold.sav",FALSE)
> stopifnot(identical(pbc, pbco))
> ## summary(pbco)
> ## str(pbco)
> ## d.pbco <- data.frame(pbco)
> ## summary(d.pbco)
> pbc. <- read.spss("pbc.por",FALSE)
> summary(pbc.)
         Length Class  Mode   
AGE      418    -none- numeric
ALB      418    -none- numeric
ALKPHOS  418    -none- numeric
ASCITES  418    -none- numeric
BILI     418    -none- numeric
CHOL     418    -none- numeric
EDEMA    418    -none- numeric
EDTRT    418    -none- numeric
HEPMEG   418    -none- numeric
TIME     418    -none- numeric
PLATELET 418    -none- numeric
PROTIME  418    -none- numeric
SEX      418    -none- numeric
SGOT     418    -none- numeric
SPIDERS  418    -none- numeric
STAGE    418    -none- numeric
STATUS   418    -none- numeric
TRT      418    -none- numeric
TRIG     418    -none- numeric
COPPER   418    -none- numeric
> str(pbc.) # has variable.labels
List of 20
 $ AGE     : num [1:418] 58.8 56.4 70.1 54.7 38.1 ...
 $ ALB     : num [1:418] 2.6 4.14 3.48 2.54 3.53 3.98 4.09 4 3.08 2.74 ...
 $ ALKPHOS : num [1:418] 1718 7395 516 6122 671 ...
 $ ASCITES : num [1:418] 1 0 0 0 0 0 0 0 0 1 ...
 $ BILI    : num [1:418] 14.5 1.1 1.4 1.8 3.4 0.8 1 0.3 3.2 12.6 ...
 $ CHOL    : num [1:418] 261 302 176 244 279 248 322 280 562 200 ...
 $ EDEMA   : num [1:418] 1 0 1 1 0 0 0 0 0 1 ...
 $ EDTRT   : num [1:418] 1 0 0.5 0.5 0 0 0 0 0 1 ...
 $ HEPMEG  : num [1:418] 1 1 0 1 1 1 1 0 0 0 ...
 $ TIME    : num [1:418] 400 4500 1012 1925 1504 ...
 $ PLATELET: num [1:418] 190 221 151 183 136 -9 204 373 251 302 ...
 $ PROTIME : num [1:418] 12.2 10.6 12 10.3 10.9 11 9.7 11 11 11.5 ...
 $ SEX     : num [1:418] 1 1 0 1 1 1 1 1 1 1 ...
 $ SGOT    : num [1:418] 137.9 113.5 96.1 60.6 113.2 ...
 $ SPIDERS : num [1:418] 1 1 0 1 1 0 0 0 1 1 ...
 $ STAGE   : num [1:418] 4 3 4 4 3 3 3 3 2 4 ...
 $ STATUS  : num [1:418] 1 0 1 1 0 1 0 1 1 1 ...
 $ TRT     : num [1:418] 1 1 1 1 2 2 2 2 1 2 ...
 $ TRIG    : num [1:418] 172 88 55 92 72 63 213 189 88 143 ...
 $ COPPER  : num [1:418] 156 54 210 64 143 50 52 52 79 140 ...
 - attr(*, "label.table")=List of 20
  ..$ AGE     : NULL
  ..$ ALB     : NULL
  ..$ ALKPHOS : NULL
  ..$ ASCITES : NULL
  ..$ BILI    : NULL
  ..$ CHOL    : NULL
  ..$ EDEMA   : NULL
  ..$ EDTRT   : NULL
  ..$ HEPMEG  : NULL
  ..$ TIME    : NULL
  ..$ PLATELET: NULL
  ..$ PROTIME : NULL
  ..$ SEX     : NULL
  ..$ SGOT    : NULL
  ..$ SPIDERS : NULL
  ..$ STAGE   : NULL
  ..$ STATUS  : NULL
  ..$ TRT     : NULL
  ..$ TRIG    : NULL
  ..$ COPPER  : NULL
 - attr(*, "variable.labels")= Named chr [1:20] " " " " " " " " ...
  ..- attr(*, "names")= chr [1:20] "AGE" "ALB" "ALKPHOS" "ASCITES" ...
> stopifnot(all.equal(d.pbc, data.frame(pbc.), tol=1e-15))
> 
> electric.s  <- read.spss("electric.sav",TRUE,TRUE)
> electric.p  <- read.spss("electric.por",TRUE,TRUE)
> electric.s4 <- read.spss("electric.sav",TRUE,TRUE,max.value.labels = 4)
> summary(electric.s)
     CASEID                 FIRSTCHD        AGE           DBP58       
 Min.   :   1.00   NO CHD       :120   Min.   :40.0   Min.   : 65.00  
 1st Qu.:  73.75   SUDDEN  DEATH: 36   1st Qu.:45.0   1st Qu.: 80.00  
 Median : 144.50   NONFATALMI   : 72   Median :48.0   Median : 87.00  
 Mean   : 572.94   FATAL   MI   :  9   Mean   :47.8   Mean   : 88.79  
 3rd Qu.:1042.25   OTHER   CHD  :  3   3rd Qu.:51.0   3rd Qu.: 96.50  
 Max.   :2098.00                       Max.   :54.0   Max.   :160.00  
                                                      NA's   :  1.00  
     EDUYR           CHOL58          CGT58            HT58      
 Min.   : 6.00   Min.   :106.0   Min.   : 0.00   Min.   :60.90  
 1st Qu.: 9.75   1st Qu.:228.8   1st Qu.: 0.00   1st Qu.:66.50  
 Median :12.00   Median :261.0   Median :10.00   Median :68.15  
 Mean   :11.66   Mean   :264.1   Mean   :11.58   Mean   :68.51  
 3rd Qu.:14.00   3rd Qu.:293.2   3rd Qu.:20.00   3rd Qu.:70.20  
 Max.   :18.00   Max.   :515.0   Max.   :60.00   Max.   :77.00  
 NA's   :28.00                   NA's   : 1.00                  
      WT58           DAYOFWK     VITAL10    FAMHXCVR       CHD     
 Min.   :123.0   SUNDAY  : 19   ALIVE:179   NO :178   Min.   :0.0  
 1st Qu.:156.0   TUESDAY : 19   DEAD : 61   YES: 62   1st Qu.:0.0  
 Median :171.0   WEDNSDAY: 17                         Median :0.5  
 Mean   :173.4   SATURDAY: 16                         Mean   :0.5  
 3rd Qu.:187.0   THURSDAY: 15                         3rd Qu.:1.0  
 Max.   :278.0   (Other) : 24                         Max.   :1.0  
                 NA's    :130                                      
> ii <- c(2,10)
> vl <- list(FIRSTCHD = c("OTHER   CHD"= 6, "FATAL   MI"= 5, "NONFATALMI"= 3,
+ 			"SUDDEN  DEATH" = 2, "NO CHD" = 1),
+ 	   DAYOFWK = c(SATURDAY=7, FRIDAY=6, THURSDAY=5,
+ 		       WEDNSDAY=4, TUESDAY=3, MONDAY=2, SUNDAY=1))
> stopifnot(identical(electric.s,	     electric.p),
+ 	  identical(electric.s[-ii], electric.s4[-ii]),
+ 	  identical(vl, lapply(electric.s4[ii], attr, "value.labels")),
+ 	  identical(lapply(vl, names),
+ 		    lapply(electric.s[ii], function(.) rev(levels(.)))))
> 
> 
> ## after "long label patch":
> 
> invisible(Sys.setlocale (locale="C")) ## to resolve locale problem
> ldat <- read.spss("spss_long.sav", to.data.frame=TRUE)
> ldat
  variable1 variable2
1         1         1
2         2         1
3         2         3
> nnms <- nms <- names(ldat)
> names(nnms) <- nms
> stopifnot(identical(nms,  c("variable1", "variable2")),
+ 	  identical(nnms, attr(ldat, "variable.labels")))
>