[R] to modify a dataframe

Arnaud Michel michel.arnaud at cirad.fr
Wed Jan 1 17:55:26 CET 2014


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, 1), Pays5 = c(1, 1, 0, 0, 0, 0, 0, 0, 0)), .Names = c("Nom",
"Pays1", "Pays2", "Pays3", "Pays4", "Pays5"), row.names = c(1L,
3L, 4L, 2L, 5L, 6L, 7L, 8L, 9L), class = "data.frame")


I look for a way to build the new dataframe df2
  
df2 <-
structure(list(Nom = structure(1:9, .Label = c("A1", "A2", "A3",
"B1", "B2", "C1", "C2", "C3", "C4"), class = "factor"), Pays1 = c(1,
1, 1, 1, 1, 0, 0, 0, 0), Pays2 = c(0, 0, 0, 1, 1, 1, 1, 1, 1),
     Pays3 = c(0, 0, 0, 1, 1, 0, 0, 0, 0), Pays4 = c(1, 1, 1,
     0, 0, 1, 1, 1, 1), Pays5 = c(1, 1, 1, 0, 0, 0, 0, 0, 0)), .Names = c("Nom",
"Pays1", "Pays2", "Pays3", "Pays4", "Pays5"), row.names = c(NA,
-9L), class = "data.frame")

The purpose is to transform df1 it df2 by giving for every group of lines A, B and C the value 1 if there is at least a value equal to 1 or a value 0 if there is no value equal to 1

Thanks for your helps

-- 
Michel ARNAUD
Chargé de mission auprès du DRH
DGDRD-Drh - TA 174/04
Av Agropolis 34398 Montpellier cedex 5
tel : 04.67.61.75.38
fax : 04.67.61.57.87
port: 06.47.43.55.31




More information about the R-help mailing list