[R] Weird problem with trying to change a variable
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Jan 16 23:01:31 CET 2004
On Fri, 16 Jan 2004, Peter Flom wrote:
> I have a dataframe called cvar, with two variables (among many others)
> called MSA and ACTUP. Both are numeric. This was working fine. Then I
> found out that for two MSAs, ACTUP should be 1, not 0.
>
> so I tried
>
> cvar$ACTUP[cvar$MSA == 6840] <- 1
> cvar$ACTUP[cvar$MSA == 5360] <- 1
>
> but when I try
>
> table(cvar$MSA, cvar$ACTUP)
>
> the level of ACTUP for those two MSAs has not changed, and is still 0
`The level'? You said they were numeric, and it is factors which have
levels.
> When I try
>
> cvar$MSA or cvar$ACTUP
>
> I get lists, as I expect. the MSA list includes 6840 and 5360
Lists? Do you mean vectors? Columns of dataframes are not supposed to be
lists.
> when I try
>
> cvar$ACTUP[cvar$MSA == 5360]
>
> I get numeric(0)
So presumably cvar$MSA == 5360 is entirely false, but I would check, and I
would also check the class of cvar$MSA.
If perchance MSA were a factor, something like the following could be
happening:
> MSA <- factor(c("10000", " 5360"))
> MSA
[1] 10000 5360
Levels: 5360 10000
> MSA == 5360
[1] FALSE FALSE
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list