Try this:

sapply(names(DF), function(n)ifelse(DF[,n] %in% c(1, 2), n, NA))

Where DF is your data.frame

On Wed, Jul 8, 2009 at 5:25 PM, Olivella <olive...@wustl.edu> wrote:

>
> Hello,
>
> I wish to perform a substitution of certain numerical values in a data
> matrix with the corresponding column name. For instance, if I have a data
> matrix
> V1  V2  V3
> 2    0    1
> 0    1    2
> 1    5    0
> 5    0    0
>
> I want to substitute the `1' and the `2' for the corresponding column name,
> and make everything else `NA' like this
> V1    V2    V3
> V1    NA    V3
> NA    V2    V3
> V1    NA    NA
> NA    NA    NA
>
> I have done this using an explicit `for' loop, but it takes a really long
> time to finish. Is there any way I can do this using `apply' or some form
> of
> implicit looping?
>
> Thank you for your help,
>
> SO
> --
> View this message in context:
> http://www.nabble.com/Substituting-numerical-values-using-%60apply%27-tp24398687p24398687.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help@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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to