Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: AW: AW: AW: AW: AW: Detach value label from string var
From
"Nick Cox" <[email protected]>
To
<[email protected]>
Subject
st: RE: AW: AW: AW: AW: AW: Detach value label from string var
Date
Wed, 7 Apr 2010 17:42:33 +0100
If this works, then with -findname- from SSC, the two calls to -ds- could be replaced by
findname, type(string) vall
after which `r(varlist)' can be invoked as here.
Nick
[email protected]
Martin Weiss
So here is a way to fake-define a -value label- for the string vars that
(seem to) have a -value label-. The example follows from the fake dataset
created in my earlier conversation with Marc:
clear*
xmluse stata_out.xml
ds, has(type string)
ds `r(varlist)', has(vallabel)
foreach var of varlist `r(varlist)'{
cap la de `:value label `var'' 0 "test" 1 "test1"
di in r "Now at value label: `:val la `var'', RC is: " _rc
}
*************
The example shows the value of -ds- once again. We need to -capture- the
creation of the -label- since the same -label- may well be attached to two
different variables, as is the case in my example. In the second line, the
return code shows whether there was a problem or not.
Kaulisch, Marc
Martin,
I certainly can reproduce the behaviour with your example. So I get the
point that "string vars with embedded blanks" has nothing to do with the
value labels attached to string vars. But I get problems with empty value
labels attached to string vars.
For example
. mlanguage add val, saving(val) // mlanguage is a user-written program
Produces an error because mylabel is not defined. Info: -labelbook, p- does
not see a problem in this example.
It is possible to define mylabel
. la de mylabel 0 "test" 1 "test1"
Then: -mlanguage- works.
So a solution to my problem would be to define all value labels attached to
a string var. Another solution would be to do not attach empty value labels
to string vars in the first place (my favorite solution).
Or on Stata-side
- to improve the XML-Import that either such attachements to string vars are
ignored or an error while importing is shown
- to allow the detachment of value labels from string vars
Marc
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Martin Weiss
Gesendet: Dienstag, 6. April 2010 18:47
An: [email protected]
Betreff: st: AW: AW: AW: Detach value label from string var
<>
It is indeed a little weird that one can attach a -value label- to a string
variable with -xmluse-, which is certainly not possible via the "variables
manager" - where the necessary button is disabled for string variables. I am
not sure whether this behavior has any real bearing on your "string var with
embedded blanks issue", though. Try this:
*************
sysuse auto, clear
gen str1 newstrvar=cond(_n<50,"A","B")
xmlsave stata_out.xml, doctype(dta) replace !start stata_out.xml
*************
At this point, you edit lines 62 and 74 of the resulting xml file to read:
<lblname varname='make'>mylabel</lblname>
and
<lblname varname='newstrvar'>mylabel</lblname>
respectively.
You save the xml file and continue:
*************
clear*
xmluse stata_out.xml
d
codebook, p
*************
The result is:
. codebook, p
Potential problems in dataset stata_out.xml
potential problem variables
--------------------------------------------------
strvars that may be compressed make
string vars with embedded blanks make
--------------------------------------------------
This result leads me to believe that "string vars with embedded blanks" has
nothing to do with the value labels attached to string vars, and everything
with the values of the variable itself. Otherwise, "newstrvar" would have to
show up in the -codebook- results as well.
HTH
Martin
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Kaulisch, Marc
Gesendet: Dienstag, 6. April 2010 18:17
An: [email protected]
Betreff: st: AW: AW: Detach value label from string var
We import our data by a XML-file where <lbllist> is given for all vars (e.g.
<lblname varname='BN15_2__5'>BN15_2</lblname>) despite (non-)existing value
labels defined under <value labels>.
A trick would be to remove the value labels for all string vars in the
XML-definition <lblname>. I hoped to do this by a Stata command and not
going back to our contractor changing the export-mechanism...
Marc
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Martin Weiss
Gesendet: Dienstag, 6. April 2010 16:35
An: [email protected]
Betreff: st: AW: Detach value label from string var
<>
What does "importing a dataset" mean? The effect does not seem to occur
here:
*************
sysuse auto, clear
outsheet using myfile.csv, comma replace
clear*
insheet using myfile.csv, comma clear
d
la dir
codebook, p
*************
-codebook- returns "make" as a "string var with embedded blanks", but how is
this issue connected to any -label-?
HTH
Martin
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Kaulisch, Marc
Gesendet: Dienstag, 6. April 2010 15:32
An: [email protected]
Betreff: st: Detach value label from string var
Another problem I cannot solve myself:
By importing a dataset all variables get label values attached - also string
vars. This leads to "string vars with embedded blanks" by codebook, p.
For numeric vars with empty value labels I used:
. label values `r(labelnotfound)' .
But
. label values `r(str_embedded)' .
does not work.
I even can not do this via the Variables Manager. Any idea how to do this?
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/