#stata #reshape #long-integer #minimum
Вопрос:
Я работаю с Stata над набором данных, в котором много фермерских хозяйств, которые повторяются, если у них несколько участков: например, у них есть 3 участка, на которых они выращивают рисовые поля.
Теперь я хотел бы найти минимальное количество рисовых полей среди всех участков для данного домохозяйства, а затем drop
этот ряд
Как мне это сделать?
Пример:
HHID Plot Qty
1 1 1
1 2 3
2 1 0.5
2 2 1
Я хочу drop qty
1 и 0,5 для домашних хозяйств 1 и 2
так что мой столик будет
HHID Plot Qty
1 2 3
2 2 1
Комментарии:
1. Как вы хотите относиться к галстукам? Например, если
HHID
бы 2 владели двумя участками сQty
0,5, вы бы хотели отказаться от обоих? Или только один?
Ответ №1:
bysort HHID (Qty) : drop if _n == 1
Комментарии:
1. Со ссылкой на мой комментарий выше, что-то подобное
bysort HHID (Qty) : drop if Qty == Qty[1]
может быть желательно, если OP касается связей.2. Я согласен. Галстукам нужно уделить внимание.
3. Огромное спасибо. Это очень полезно. Что делать, если я хочу удалить только если есть по крайней мере две записи, т. Е. Я не хочу удалять значения только с одной записью
4. Пожалуйста, отредактируйте свой вопрос, чтобы добавить новый вопрос.