[R] svyhist and svyboxplot

Muhuri, Pradip (SAMHSA/CBHSQ) Pradip.Muhuri at samhsa.hhs.gov
Sun Oct 14 04:02:48 CEST 2012


Hello,


The following code is expected to produce 4 charts. But, I only get charts 1,2 ,& 4, NOT CHART # 3. 

For Chart# 3, I am getting the following error message: Error in tapply(1:NROW(x), list(factor(strata)), function(index) { :   arguments must have same length

I would appreciate if someone could  help me resolve the issue.

Thanks,

Pradip


# BELOW IS THE REPRODUCIBLE EXAMPLE
setwd ("E:/RDATA")
options(width = 120)
library (survey)
library (KernSmooth)

xd1<-
"xsmoke age_p psu stratum       wt8
13601       3    22   2      20  356.5600
32966       3    38   2      45  434.3562
63493       1    32   1      87  699.9987
238175      3    46   1     338  982.8075
174162      3    40   1     240  273.6313
220206      3    33   2     308 1477.1688
118133      3    68   1     159  716.3012
142859      2    23   1     194 1100.9475
115253      2    35   2     155  444.3750
61675       3    31   1      85  769.5963
189813      3    37   1     263  328.5600
226274      1    47   2     318  605.8700
41969       3    71   2      58  597.0150
167667      3    40   2     230 1030.4637
225103      3    37   2     316  349.6825
49894       3    70   2      68  517.7862
98075       3    46   2     130 1428.7225
180771      3    50   1     250  652.4188
137057      3    42   1     186  590.2100
77705       2    23   1     105 1687.2450
89106       3    48   1     118  407.6513
208178      3    50   1     290  556.5000
100403      3    52   2     133 1481.8200
221571      1    27   2     310  833.5338
10823       2    72   1      16 1807.6425
108431      3    71   2     145  945.6263
68708       1    46   1      94 1989.3775
23874       3    23   2      33 1707.8775
150634      3    19   2     206  761.1500
231232      3    42   2     326 1487.4113
184654      2    42   2     255 1715.2375
215312      3    57   1     300  483.5663
40713       2    57   2      56 2042.2762
130309      3    23   1     177  948.5625
25515       2    55   1      35 2719.7525
235612      2    83   2     333  603.3537
13755       2    36   2      20  265.1938
2441        3    33   1       4 1062.1200
157327      3    77   1     215 2010.6600
66502       3    20   2      91 1122.9725
230778      1    55   2     325 1207.3025
74805       3    54   1     101 1028.5150
166556      1    50   1     229 1546.9450
91914       1    68   1     121  428.5350
89651       3    59   2     118  143.5437
149329      3    44   2     204 1064.7725
212700      2    59   2     295 1050.1163
454         1    79   1       1  275.5700
125639      1    27   1     170  785.1037
55442       3    47   1      76  950.3312
145132      3    77   1     197 1269.2287
123069      3    24   1     167  216.1937
188301      1    55   2     260  426.6313
852         2    66   2       1 1443.4887
3582        3    81   1       6  790.8412
235423      1    44   2     333  659.4238
42175       2    40   1      59 1089.6762
57033       3    43   1      78  226.8750
177273      2    85   1     244  392.7200
218558      3    40   2     305 1680.2700
27784       2    45   1      39  280.0550
81823       3    43   1     110  965.0438
76344       3    26   1     103 1095.6012
114916      3    56   2     154  436.8838
35563       3    78   1      49  333.2875
192279      3    30   2     267  722.0312
61315       1    48   2      84 1426.5725
219903      3    43   1     308  791.5738
42612       3    25   1      60  658.1387
178488      3    33   2     246  675.1912
9031        1    27   2      14  989.4863
145092      2    64   1     197  960.1912
71885       3    53   2      97  595.4050
38137       2    75   1      53 1004.0912
140149      1    21   1     190 1870.9350
162052      3    25   1     223  892.7775
89527       2    39   2     118  518.1050
59650       3    26   2      82  432.7837
24709       2    84   1      34  453.9013
18933       3    85   1      27  582.3288
24904       3    35   2      34 1027.5287
213668      3    39   1     298 3174.1925
110509      3    30   1     149  469.8188
72462       3    63   1      98  386.2163
152596      3    19   1     209 1328.2188
17014       4    62   1      24  294.9250
33467       2    50   1      46 1601.4575
5241        3    33   1       9 1651.0988
215094      3    23   1     300  427.6313
88885       1    21   1     118 1092.2613
204868      2    60   2     285  781.2325
157415      2    31   2     215 1323.5750
71081       2    44   2      96 1059.2088
25420       3    38   1      35  530.7413
144226      1    27   1     196 1126.3112
47888       3    46   2      66  965.4050
216179      3    29   2     301 1237.6463
29172       3    68   1      41 1025.9738
168786      1    47   1     232  680.6213
94035       2    23   2     124  330.4563
170542      1    25   2     234  757.2287
160331      2    33   2     220  636.3900
124163      3    80   2     167  287.6988
71442       2    37   1      97  442.2300
80191       2    74   2     107  871.0338
199309      3    29   2     277  485.2337
91293       3    35   2     120  138.3187
219524      2    68   1     307  609.5862
119336      3    85   2     160  149.7612
31814       3    68   1      44  396.6913
54920       1    28   2      75  532.7175
161034      3    29   2     221  791.0100
177037      1    50   1     244  626.2400
119963      1    54   1     162  374.1062
107972      2    58   1     145  944.8863
22932       3    60   1      32  310.6413
54197       3    23   2      74  931.2737
209598      3    23   1     292 1078.2950
213604      1    74   2     297  588.5000
146480      3    27   1     200  212.0588
162463      3    55   2     223 1202.0925
215534      3    33   2     300  430.3938
100703      1    53   1     134  463.6200
162588      3    27   1     224  612.0250
222676      1    35   1     312  292.7000
220052      3    84   1     308 1301.4738
131382      3    36   1     178  825.9512
102117      3    28   1     137  451.4075
70362       3    52   2      95  185.2562
188757      3    22   2     261  704.3913
215878      2    37   1     301  789.9837
45820       3    18   2      64 2019.4137
84860       3    47   1     113  149.0200
110581      3    37   1     149  526.0775
207650      3    51   2     289  688.0538
40723       3    59   2      56  497.6050
169663      3    19   2     233  845.0362
191955      1    36   1     267  735.7350
213816      3    18   2     298 2275.3513
120967      3    48   2     163 1055.3238
209430      2    42   2     291 1771.0225
21235       3    21   1      30 1204.5663
131326      3    29   1     178  331.9588
19667       1    57   1      28  638.9138
74743       2    48   1     101 1208.8763
178672      3    66   2     246  338.2013
100174      3    24   2     133 1733.6275
69046       3    24   2      94  542.4863
79960       1    41   2     107  567.6363
108591      2    42   1     146  978.3775
235635      3    24   1     334 1382.9437
187426      2    54   2     259  478.2362
28728       3    39   2      40 1165.6175
205348      3    32   2     286 1082.9913
218812      3    30   1     306  308.1037
168389      3    48   2     231  593.2475
145479      1    21   1     198  864.2663
105170      2    40   1     141 1016.7862
155753      2    78   2     212 1109.0025
169399      3    28   1     233 1467.1363
55664       1    63   1      76  904.3763
74024       2    51   1     100  547.5538
85558       1    25   1     114  893.8825
142684      3    54   2     193 1203.3212
198792      1    22   1     277 1800.3325
82603       3    70   2     110  827.3763
171036      2    50   2     235 2003.9725
1616        1    42   2       2  590.5662
57042       3    45   1      78 1021.7287
45100       2    38   2      63 1807.9288
134828      2    28   1     183  715.1187
91167       3    26   2     120  480.1950
170605      3    40   2     234  507.2763
175869      3    77   1     242  386.2987
81594       2    82   2     109  580.0838
37426       1    20   2      52 1159.1613
113799      3    85   1     153  459.5450
24721       3    18   2      34 2912.7575
26297       3    45   2      36 1304.4925
57074       1    51   1      78  602.2112
185000      3    34   1     256  583.5738
94196       3    44   2     124 2344.1087
80656       3    45   2     108 1340.9713
14849       1    46   1      22  967.2525
145730      2    73   1     198  418.8037
56633       3    34   2      77 1011.5488
273         2    54   1       1  786.2138
60567       1    40   2      83  315.2925
47788       1    38   2      66 1105.9188
76943       2    53   2     103  537.7062
165014      3    34   1     227  824.3125
188444      3    22   1     261  623.2225
29043       1    35   1      41  724.9025
165578      3    25   1     228  596.0275
50702       3    43   2      69  985.9662
197621      3    39   2     275 1310.1163
26267       3    41   2      36 1030.3900
29565       1    60   2      41  920.8550
20060       3    36   2      28  157.2188
119780      2    20   1     162  863.8100"
tor <- read.table(textConnection(xd1), header=TRUE, as.is=TRUE)

# Grouping variable "xsmoke"  must be a factor 

tor$xsmoke <- factor(tor$xsmoke,levels=c (1,2,3),
                labels=c('Current SMK','Former SMK', 'Never Smk'), ordered=TRUE)

is.factor(tor$xsmoke)    


# object with survey design variables and data 
nhis <- svydesign (id=~psu,strat=~stratum, weights=~wt8, data=tor, nest=TRUE)

MyBreaks <- c(18, 25, 35, 45, 55, 65, 75, 85)

par(mfrow=c(2,2))

#Chart 1
options( survey.lonely.psu = "adjust" )
svyhist (~age_p,
         subset (nhis, xsmoke=='Current SMK'), breaks=MyBreaks,
         ylim = c(0,0.040),
         main= " ",
         col="red", xlab="Current Smoker's Age ")
lines (svysmooth(~age_p, bandwidth=5,subset(nhis, xsmoke=='Current SMK')), lwd=2)



#Chart 2
options( survey.lonely.psu = "adjust" )
svyhist (~age_p,
         subset (nhis, xsmoke=='Former SMK'), breaks=MyBreaks,
         ylim = c(0,0.040),
         main= " ",
         col="yellow", xlab="Former Smoker's Age")
lines (svysmooth(~age_p, bandwidth=5,subset(nhis, xsmoke=='Former SMK')), lwd=2)


#Chart 3
options( survey.lonely.psu = "adjust" )
svyhist (~age_p,
         subset (nhis, xsmoke=='Never SMK'), breaks=MyBreaks,
         ylim = c(0,0.040),
         main= " ",
         col="green", xlab="Never Smoker's Age")
lines (svysmooth(~age_p, bandwidth=5,subset(nhis, xsmoke=='Never SMK')), lwd=2)



#Chart 4
svyboxplot (age_p~xsmoke,
            subset (nhis, age_p>=0),
            col=c("red", "yellow", "green"), medcol="blue",
            varwidth=TRUE, all.outliers=TRUE,
            ylab="Age at Interview", 
            xlab=" "
            )



More information about the R-help mailing list