long2wide: Convert length of stay data from "new" long format to "old"...

Usage Arguments Examples

View source: R/closMedian.R

Usage

1
long2wide(data.long)

Arguments

data.long

Examples

 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
#library(changeLOS)
#data(los.data)

#data.long <- prepare.los.data(los.data) ## long format->wide format

data(dat.icu.pneu)
head(dat.icu.pneu)

data.wide <- long2wide(dat.icu.pneu)
head(data.wide)



## The function is currently defined as
function (data.long) 
{
    data.wide <- data.frame(adm.id = sort(unique(data.long$id)))
    data.wide[, c("j.01", "j.02", "j.03", "j.12", "j.13", "cens")] <- Inf
    if ("time" %in% names(data.long)) {
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            0 & data.long$to == 1], "j.01"] <- data.long$time[data.long$from == 
            0 & data.long$to == 1]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            0 & data.long$to == 2], "j.02"] <- data.long$time[data.long$from == 
            0 & data.long$to == 2]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            0 & data.long$to == 3], "j.03"] <- data.long$time[data.long$from == 
            0 & data.long$to == 3]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            1 & data.long$to == 2], "j.12"] <- data.long$time[data.long$from == 
            1 & data.long$to == 2]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            1 & data.long$to == 3], "j.13"] <- data.long$time[data.long$from == 
            1 & data.long$to == 3]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$to == 
            "cens"], "cens"] <- data.long$time[data.long$to == 
            "cens"]
    }
    if ("exit" %in% names(data.long)) {
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            0 & data.long$to == 1], "j.01"] <- data.long$exit[data.long$from == 
            0 & data.long$to == 1]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            0 & data.long$to == 2], "j.02"] <- data.long$exit[data.long$from == 
            0 & data.long$to == 2]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            0 & data.long$to == 3], "j.03"] <- data.long$exit[data.long$from == 
            0 & data.long$to == 3]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            1 & data.long$to == 2], "j.12"] <- data.long$exit[data.long$from == 
            1 & data.long$to == 2]
        data.wide[data.wide$adm.id %in% data.long$id[data.long$from == 
            1 & data.long$to == 3], "j.13"] <- data.long$exit[data.long$from == 
            1 & data.long$to == 3]
        for (i in data.long$id[data.long$to == "cens"]) {
            if (sum(data.long$id == i) > 1) {
                data.wide[data.wide$adm.id == i, "cens"] <- data.long$exit[data.long$id == 
                  i][2]
            }
            else {
                data.wide[data.wide$adm.id == i, "cens"] <- data.long$exit[data.long$id == 
                  i][1]
            }
        }
    }
    data.wide[data.wide$j.12 == Inf & data.wide$j.02 == Inf & 
        data.wide$j.03 == Inf & data.wide$cens == Inf & data.wide$j.13 == 
        Inf & data.wide$j.01 != Inf, "cens"] <- data.wide[data.wide$j.12 == 
        Inf & data.wide$j.02 == Inf & data.wide$j.03 == Inf & 
        data.wide$cens == Inf & data.wide$j.13 == Inf & data.wide$j.01 != 
        Inf, "j.01"]
    data.wide
  }

n8thangreen/HESmanip documentation built on March 21, 2020, 12:20 a.m.