[R] Matrix to data.frame with factors

peter dalgaard pdalgd at gmail.com
Fri Oct 19 16:34:15 CEST 2012


On Oct 19, 2012, at 16:07 , Rui Barradas wrote:

> Hello,
> 
> Try the following.
> 
> x <- matrix(sample(0:1, 12, TRUE), ncol = 4)
> y <- data.frame(apply(x, 2, factor))
> str(y)
> 
> Hope this helps,

Another way, possibly more easily generalized:

x <- matrix(sample(0:1, 12, TRUE), ncol = 4)
y <- as.data.frame(x)
y[] <- lapply(y, factor, levels=0:1)
str(y)

with extensions like

is01 <- function(x) all(na.omit(x) %in% 0:1)
x <- matrix(sample(0:1, 12, TRUE), ncol = 4)
y <- as.data.frame(x)
ix <- sapply(y, is01)
y[ix] <- lapply(y[ix], factor, levels=0:1, labels=c("n","y"))
str(y)

> 
> Rui Barradas
> Em 19-10-2012 12:04, brunosm escreveu:
>> Hi all,
>> 
>> I have a matrix with 100 variables: each variable as a value of 0 or 1.
>> 
>> What i want to do is convert this matrix to a data.frame but convert all the
>> variables to factors (0 and 1) also.
>> 
>> I know i can do this one variable a time but i have 100 variables...
>> 
>> Any easy way of doing this??
>> 
>> Thanks a lot,
>> 
>> Bruno
>> 
>> 
>> 
>> --
>> View this message in context: http://r.789695.n4.nabble.com/Matrix-to-data-frame-with-factors-tp4646730.html
>> Sent from the R help mailing list archive at Nabble.com.
>> 
>> ______________________________________________
>> R-help at r-project.org 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.
> 
> ______________________________________________
> R-help at r-project.org 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.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com




More information about the R-help mailing list