I have survey data that needs to be weighted, and to help me with this task, I have access to the full joint distributions of the variables I want to use. As I understand it, I should use the postStratify() function in the survey package for this task, but I must admit that I am quite lost when it comes to the required syntax.

I have tried to use marginal distributions and the rake() function, this is quite straight-forward: http://www.r-bloggers.com/survey-computing-your-own-post-stratification-weights-in-r/

But how do I incorporate all my joint distributions into the postStratify() function? The manual only lists a simple example and is a bit vague, to me at least. I have full joint distributions for 5 different variables.

Moreover, if want to use my weighted result with a function that does not take weight as an input, how should I go about and "duplicate" my rows in the final data? When I tried the rake() function I could only trim weights to an interval with a min value of 0.87. I was thinking I could round all weights to integers.

  • $\begingroup$ some syntax examples github.com/ajdamico/usgsd/… $\endgroup$ Mar 10, 2015 at 1:07
  • $\begingroup$ Please demonstrate your syntax. $\endgroup$
    – StasK
    Aug 11, 2016 at 13:00
  • $\begingroup$ I just answered a similar question on postStratify() syntax here. $\endgroup$
    – StasK
    Aug 15, 2016 at 18:50

1 Answer 1


If you are having syntax trouble calculating post stratification weights and trimming I can recommend using www.spinnakerresearch.nl. No syntax needed. I believe you can trim max weights. However rounding weights to integers does not make sense as you will need to weight some cases down. Meaning a weight factor between 0 and 1.

  • 1
    $\begingroup$ Hi, welcome to CrossValidated. Please note that you must reveal any affiliation to products you recommend, each time that you do so. Please see this section of the help center, in particular the section under "Avoid overt self-promotion". You should also make certain when you do so that you clearly address the specific issues raised in the question in your answer. $\endgroup$
    – Glen_b
    Jun 27, 2015 at 2:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.