Dear Statalisters,
I am having trouble with a programme I wrote for specific data management
purpose. I have 271 farmers who may combine at most 3 types of crop c1 c2 c3.
The data is in long format and therefore ci records in column the type of
crop per plot owned by the farmer and in row ci show the mixture of crop by
the farmer in each of the plot. A lot of missing values appear of course in
the data.
My first objective was therefore to create dummies ci_di per crop (maximum of
46 types of crop) and this is done through the first section of my do file
below but in my attempt to pass a label value that identify each type of crop
I got the error : label beans already defined
r(110);
I actually used some resources of Statalist (posted by Nick but on different
issues) to automate the labelling.
The next section of the do file simply collapse by crop type to get the mean
value of area croped. Here also I got more than hundred data files. Do I have
to go through each file to display the output of interest (mean value of area
croped) or is there any way I can gather these results all together?
During the survey the farmer could not know the portion of land allocated to
each crop and one methodological question is to know if it is a good idea to
simply divide the total land by the number of crops cultivated on the plot.
I would appreciate any help from the list.
Best regards.
Adama
*--------STEP1: tab, generating dummies per crop and labelling their values-
version 7.0
use ctypes, clear
program define compo
foreach var of local 0{
sort id
tab `var', gen(`var'_d)
*below the local cropnames is a sample of the 46 types of crops I have. and
*at the end of the program I pasted the error generated
local cropnames "beans cassava maize rice watermelon macaxeira maxixe melon
raizman tomato jambu goma cucumber Cheiroverde sweetpotato tabaco Jerimum
PimentaCheiro Pimenta Doce Beringela"
local codes "beans cassava maize rice watermelon macaxeira maxixe melon
raizman tomato jambu goma cucumber Cheiroverde sweetpotato tabaco Jerimum
PimentaCheiro Pimenta Doce Beringela"
local i = 1
foreach x of local cropnames {
local y : word `i' of `codes'
lab define `x' 1 "`y'" 0 "no"
capture forvalues j=1/46{
label val `var'_d`j' `x'
sum area if `var'_d`j'==1
}
local i = `i' + 1
}
end
local area "c1 c2 c3"
foreach k of local area {
compo `k'
}
program drop compo
exit
label beans already defined
r(110);
*------------------STEP 2: mean value of the area croped by crop type.
*Everything works fine but how to put together the outputs generated by
*collapse--------------------------
version 7.0
program define compo2
foreach var of local 0 {
use ctypes, clear
sort id
foreach v of var * {
local l`v' : variable label `v'
if `"`l`v''"' == "" {
local l`v' "`v'"
}
}
preserve
capture forvalues i = 1/46 {
use ctypes, clear
collapse area if `var'_d`i'==1
foreach v of var * {
label var `v' "mean value of `l`v'' `var'_d`i'"
}
keep id plot area fareacrop
save f`var'`i', replace
}
restore
}
end
local area "c1 c2 c3"
foreach j of local area {
compo2 `j'
}
program drop compo2
exit
*
* 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/