To this specific question, here are two more solutions:
list if min(q11a, q11b, q11c) != 1 |
max(q11a, q11b, q11c) != 3 |
(q11a + q11b + q11c) != 6
OR
list if (q11a * q11b * q11c) != 6
(I can't think of a counterexample there that is not contrived.)
On more general checking, with possibly more than 3 items to be ranked
(Jeremy Miles' -reshape- solution, easier than he thought, although
a -reshape long- is what is needed)
reshape long q11, i(fid) string
bysort id (q11): egen wrong = total(q11 != _n)
reshape wide
list if wrong
OR
(Sergiy Radyakin is right to worry about the combinatorics,
but overlooked the fact that concatenation has been in Stata a long time)
rowsort q11?, gen(sorted)
egen all = concat(sorted*)
list if all != "1234567" (e.g.)
where -rowsort- is to be found on SSC.
Nick
[email protected]
Anirudh V. S. Ruhil
A colleague is trying to accomplish something in a different stats package
and asked if STATA could effect the solution. "Of course", said I. Now I am
scratching my head for the code. Individuals were asked to rank-order 3
choices. Person 55 did fine, but not Person 21. How can I generate a flag
for such respondent-errors?
----------------------------
fid q11a q11b q11c
55 2 3 1
21 1 2 1
----------------------------
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/