1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
# donnees
tab <- data.frame( placette=c( "EM10", "EM20", "EM30", "PR70", "EM10", "PB30", "PR70"), espece=c( "espA", "espA", "espB", "espB", "espC", "espC", "espC"))
# je fais l'hypothese que l'option par defaut pour les data.frame est stringsAsFactors=TRUE
# liste des especes
espece <- unique( as.character( tab$espece))
# Construction du tableau logique
resultat <- aggregate( espece ~ placette, tab, function( x) espece %in% x)
# construction du tableau numerique
resultat <- aggregate( espece ~ placette, tab, function( x) as.integer( espece %in% x))
# correction du nom des colonnes
# concatenation des resultats (aggregate donne un data.frame dont la seconde colonne est un matrice)
resultat <- cbind( resultat$placette, as.data.frame( resultat$espece))
# noms des colonnes
names( resultat) <- c( "placette", espece) |
Partager