Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: st: replacement

From   Nick Cox <>
To   "''" <>
Subject   RE: st: replacement
Date   Tue, 16 Aug 2011 15:11:15 +0100

This is not a reasonable thing to do in the sense that the same variable cannot be both numeric and string. However, you could fix that by e.g. 

replace v`y'= "1" if v`y'=="a"

I think my suggestion is still valid. 


Gannaway Jack WWG HWWD

Thanks for the reply.  I realise I may not have made myself very clear.  I am not trying to change the labels, but rather the actual content of the variable.  My original table is effectively categorical (a,b,c,d).  However, rather than simply using something like this:

Forvalues y=1/3 {
Replace v`y'=1 if v`y'=="a"
Replace v`y'=2 if v`y'=="b"

Which has as many scores as letters (4 in the example below), I want to replace the letters with scores which are specific to Y, meaning you have up to 3 x 4 scores in this example.

I know this is something which is fairly reasonable to do, but I was just wondering if there was a way of doing it which would minimise the opportunity for human error if the scores change (which they will!).

Nick Cox

-label define- followed by -encode-.

On Tue, Aug 16, 2011 at 9:59 AM, Gannaway Jack WWG HWWD <> wrote:

> I have a table where each observation has a letter as the value for a 
> number of the variables, e.g.
> Ob v1 v2 v3
> 1  a  a  b
> 2  c    d  a
> 3  b    c  b
> For each variable, there is a unique set of numbers which correspond 
> to the letters:
> Var a b c d
> V1  0 3 5 9
> V2  0 1 2 5
> V3  0 1 5 10
> Can anyone explain a neat way of replacing all the letters with their 
> relevent numeric score?  I know I could just do a messy and long 
> replace, but the score table is liable to change in the future and I 
> want a system where I can just point to a different input, rather than 
> manually re-write the replace command.

*   For searches and help try:

© Copyright 1996–2015 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index