Thanks for taking the time and trouble to explain this to me. ripley@stats.ox.ac.uk writes: > You'll see that [[<-.data.frame contains > > if (!inherits(value, "data.frame")) > value <- as.data.frame(value) > > and that is where the coercion is done. It really isn't possible to tell > your intentions if you replace a whole column of a data frame. What is the appropriate way to change the value in a single row in a dataframe to NA without having to "replace a whole column"? That is, how can I change the value "B" in row 2 to being NA while keeping var as a vector of characters?
x <- data.frame(var = LETTERS[1:3]) x$var <- as.character(x$var)
One obvious answer is to use simple assignment.
x[2,1] <- NA x
var 1 A 2 <NA> 3 C
is.character(x$var)
[1] TRUE
This has the desired effect. Moreover, something like this would work with my merge.data.frame problem. However, I have been operating under the (mistaken?) impression that assigning NA directly was A Bad Thing.
> On Mon, 20 May 2002 a296180@mica.fmr.com wrote:
> > > I am not sure if this is a bug within is.na<- or if it lies deeper in the > > dataframe construction process. Indeed, perhaps it is not a bug at all (in > > which case I would suggest that the help page for NA be provided with a warning > > for unsuspecting users (like me)). > > Not appropriate! Yes. I see that now. Regards, David Kane -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._