[R] to modify a dataframe

2014-01-01 Thread Arnaud Michel
Dear All, From the dataframe df1 df1 - structure(list(Nom = structure(1:9, .Label = c(A1, A2, A3, B1, B2, C1, C2, C3, C4), class = factor), Pays1 = c(1, 1, 0, 0, 1, 0, 0, 0, 0), Pays2 = c(0, 0, 0, 1, 1, 0, 1, 0, 1), Pays3 = c(0, 0, 0, 0, 1, 0, 0, 0, 0), Pays4 = c(1, 0, 0, 0, 0, 0, 1, 0,

Re: [R] to modify a dataframe

2014-01-01 Thread Bert Gunter
1. Thank you for the clear reproducible example. This made it easy to see what you wanted and provide an answer. Hopefully a correct one! 2. Many ways to do this. Here's one, but others may be better. Step1: First greate a grouping factor for Nom to group the separate row labels into the logical

Re: [R] to modify a dataframe

2014-01-01 Thread Rui Barradas
Hello, Here's one way. lst1 - lapply(split(df1, gsub([0-9], , df1$Nom)), function(x){ x[, -1] - lapply(x[, -1], function(y){ z - if(any(y == 1)) 1 else 0 rep(z, length(y)) }) x }) df3 -

Re: [R] to modify a dataframe

2014-01-01 Thread arun
Hi, You could try:  df3 - df1 library(plyr) df3[,-1] - ddply(df1,.(Nom1=gsub(\\d+,,Nom)),colwise(function(x) rep(max(x),length(x[,-1] attr(df3,row.names) - attr(df2,row.names)  identical(df2,df3) #[1] TRUE A.K. On Wednesday, January 1, 2014 11:56 AM, Arnaud Michel michel.arn...@cirad.fr