@@ -2,14 +2,18 @@ rpm_make_counts <- function(Xdata, Zdata, sampling_design, sampled, Xid, Zid, pa
2
2
3
3
num_Xu <- nrow(Xu )
4
4
num_Zu <- nrow(Zu )
5
- cnW <- paste(colnames(Xu )[2 ],Xu [,2 ], sep = " ." )
6
- for (i in 2 : ncol(Xu )){
5
+ if (ncol(Xu )> 1 ){
6
+ cnW <- paste(colnames(Xu )[2 ],Xu [,2 ], sep = " ." )
7
+ for (i in 2 : ncol(Xu )){
7
8
cnW <- paste(cnW ,paste(colnames(Xu )[i ],Xu [,i ], sep = " ." ),sep = ' .' )
8
- }
9
- cnM <- paste(colnames(Zu )[2 ],Zu [,2 ], sep = " ." )
10
- for (i in 2 : ncol(Zu )){
9
+ }
10
+ }else { cnW <- " Int" }
11
+ if (ncol(Zu )> 1 ){
12
+ cnM <- paste(colnames(Zu )[2 ],Zu [,2 ], sep = " ." )
13
+ for (i in 2 : ncol(Zu )){
11
14
cnM <- paste(cnM ,paste(colnames(Zu )[i ],Zu [,i ], sep = " ." ),sep = ' .' )
12
- }
15
+ }
16
+ }else { cnM <- " Int" }
13
17
14
18
if (sampling_design == " stock-stock" ){
15
19
# IDs of the women matched to the sampled men (and vice versa)
@@ -73,19 +77,20 @@ rpm_make_counts <- function(Xdata, Zdata, sampling_design, sampled, Xid, Zid, pa
73
77
}
74
78
75
79
if (sampling_design == " stock-stock" ) {
80
+ x_wts <- Xdata [,X_w ] * Xdata [,sampled ]
81
+ z_wts <- Zdata [,Z_w ] * Zdata [,sampled ]
76
82
subset = Xdata [,sampled ] & is.na(Xdata [,pair_id ])
77
83
pmfW_S = as.numeric(stats :: xtabs(X_w ~ factor (Xtype ,1 : num_Xu ), data = Xdata , subset = subset ))
78
84
subset = Xdata [,sampled ] & ! is.na(Xdata [,pair_id ])
79
- pmfW_P = as.numeric(stats :: xtabs(X_w ~ factor (Xtype ,1 : num_Xu ), data = Xdata , subset = subset ))
85
+ x_wts [subset ] <- 0.5 * x_wts [subset ]
86
+ pmfW_P = 0.5 * as.numeric(stats :: xtabs(X_w ~ factor (Xtype ,1 : num_Xu ), data = Xdata , subset = subset ))
80
87
pmfW = pmfW_S + pmfW_P
81
88
subset = Zdata [,sampled ] & is.na(Zdata [,pair_id ])
82
89
pmfM_S = as.numeric(stats :: xtabs(Z_w ~ factor (Ztype ,1 : num_Zu ), data = Zdata , subset = subset ))
83
90
subset = Zdata [,sampled ] & ! is.na(Zdata [,pair_id ])
84
- pmfM_P = as.numeric(stats :: xtabs(Z_w ~ factor (Ztype ,1 : num_Zu ), data = Zdata , subset = subset ))
91
+ z_wts [subset ] <- 0.5 * z_wts [subset ]
92
+ pmfM_P = 0.5 * as.numeric(stats :: xtabs(Z_w ~ factor (Ztype ,1 : num_Zu ), data = Zdata , subset = subset ))
85
93
pmfM = pmfM_S + pmfM_P
86
- #
87
- x_wts <- Xdata [,X_w ] * Xdata [,sampled ]
88
- z_wts <- Zdata [,Z_w ] * Zdata [,sampled ]
89
94
}
90
95
if (sampling_design == " stock-flow" ) {
91
96
pmfW = as.numeric(stats :: xtabs(X_w ~ factor (Xtype ,1 : num_Xu ), data = Xdata , subset = sampled ))
@@ -108,8 +113,8 @@ rpm_make_counts <- function(Xdata, Zdata, sampling_design, sampled, Xid, Zid, pa
108
113
}
109
114
pmfW = pmfW / sum(pmfW )
110
115
pmfM = pmfM / sum(pmfM )
111
- names(pmfW ) <- paste(colnames( Xu )[ 2 ], Xu [, 2 ], sep = " . " )
112
- names(pmfM ) <- paste(colnames( Zu )[ 2 ], Zu [, 2 ], sep = " . " )
116
+ names(pmfW ) <- cnW
117
+ names(pmfM ) <- cnM
113
118
114
119
if (verbose ){
115
120
message(sprintf(" Proportion population paired size: %f" ,sum(Zdata [paired_and_sampled_M ,Z_w ])/ n ))
@@ -260,6 +265,6 @@ rpm_make_counts <- function(Xdata, Zdata, sampling_design, sampled, Xid, Zid, pa
260
265
261
266
list (pmf = pmf , counts = counts , pmfW = pmfW , pmfM = pmfM , pmfN = pmfN , N = N , gw = gw , gm = gm ,
262
267
num_women = num_women , num_men = num_men , num_sampled = num_sampled ,
263
- x_wts = x_wts , z_wts = z_wts
268
+ x_wts = x_wts , z_wts = z_wts
264
269
)
265
270
}
0 commit comments