сказать, что я var1
, непрерывное:Как Просто Создать новую переменную на основе размахов другого
clear
set obs 1000
gen var1 = runiform()
sum var1
Теперь я хочу, чтобы создать var2
на основе диапазонов var1
. Я могу сделать это следующим образом:
gen var2 = "Lowest" if var1<.25
replace var2 = "Low" if var1>=.25 & var1<.5
replace var2 = "High" if var1>=.5 & var1<.75
replace var2 = "Highest" if var1>=.75
Я хотел был бы иметь возможность сделать это в одной строке. Псевдокод:
gen var2 = (ranges(0 .25 .5 .75 1) values("Lowest" "Low" "High" "Highest"))
способ сделать нечто похожее в R
с использованием cut
находится на Create categorical variable in R based on range
Есть ли команда, которая может сделать что-то в Stata, которое, как R-версии? Представьте, что у вас есть 10 000 диапазонов, которые нужно переместиться в var2
. Тогда лучший способ поможет.
Другим способом сделать это в одной строке в Stata неуклюжий и находится на http://www.stata.com/support/faqs/data-management/multiple-operations/:
generate var2 = cond(var1<=.25, "Lowest", cond(var1<=.50, "Low", cond(var1<=.75, "High", cond(var1<=1.00, "Highest", ""))))
Есть ли лучший способ?