File: spss.R

package info (click to toggle)
foreign 0.8.50-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 1,416 kB
  • sloc: ansic: 7,372; asm: 4; makefile: 1
file content (52 lines) | stat: -rw-r--r-- 1,672 bytes parent folder | download | duplicates (2)
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
library(foreign)

sample100 <- read.spss("sample100.sav",FALSE)
summary(sample100)
str(sample100)
d.sample100 <- data.frame(sample100)
summary(d.sample100)
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)
str(pbc)
d.pbc <- data.frame(pbc)
summary(d.pbc)
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.)
str(pbc.) # has variable.labels
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)
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
nnms <- nms <- names(ldat)
names(nnms) <- nms
stopifnot(identical(nms,  c("variable1", "variable2")),
	  identical(nnms, attr(ldat, "variable.labels")))