R Users:

I'm wondering:

 Why does my logical vector becomes a numeric vector when stuffed into a data 
frame?  How do I change this so that it's retained as a logical data type?  
I've tried a couple of things but to no avail.

Here's my example code:

# Exercise 4-1 in Non-Detects and Data Analysis. Dennis Helsel.  2005.

# "Create two new variables in the Interval Endpoints format, StartCu and EndCu,
# that will contain the same information given by the current variables

library(NADA)
data(CuZn)
names(CuZn)

StartCu <- ifelse(CuZn$CuCen == "TRUE", 0, CuZn$Cu)
EndCu <- CuZn$Cu

CuIEP = data.frame(cbind(Cu = CuZn$Cu, CuCen = CuZn$CuCen, StartCu, EndCu))

class(CuZn$CuCen)
#returns "logical"
class(CuIEP$CuCen)
#returns "numeric"

CuIEP2 = data.frame(cbind(Cu = CuZn$Cu, CuCen = as.logical(CuZn$CuCen), 
StartCu, EndCu))
class(CuIEP2$CuCen)
#returns "numeric"

CuIEP3 = data.frame(cbind(Cu = CuZn$Cu, CuCen = I(CuZn$CuCen), StartCu, EndCu))
class(CuIEP3$CuCen)
#returns "numeric"

I think that I might be missing something fairly fundamental about data 
coercion in R.   ... would love to figure this out.

Any assistance would be appreciated.

Thanks much,

Matt Findley

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to