2016-12-09 1 views
-1

Etant donné un dataframe (my_data) dans R telles que les suivantesComment combiner les lignes en double dans une trame de données en R

category Keyword1 Keyword2 Keyword3 Keyword4 Keyword5 Keyword6 Keyword7 Keyword8 
123   0  1   1  0   0  0  0   1 
155   1  0   0  0   1  0  1   1 
144   0  0   1  0   0  0  1   1 
123   1  1   0  0   0  0  1   1 

Je veux transformer la trame de données en prenant des lignes avec des valeurs d'identité de catégorie déjà existent (par exemple la catégorie) et les combiner. Le résultat devrait ressembler à:

category Keyword1 Keyword2 Keyword3 Keyword4 Keyword5 Keyword6 Keyword7 Keyword8 
123   1  1   1  0   0  0  0   1 
155   1  0   0  0   1  0  1   1 
144   0  0   1  0   0  0  1   1 

Comment puis-je faire cela dans R?

+0

je pense que vous voulez 'globale (~ catégorie, données = df, FUN = max) '. – lmo

+0

Merci, cela fonctionne :) –

Répondre

1

Vous pouvez utiliser dplyr, qui est utile pour beaucoup d'autres cas d'utilisation comme suit:

library(dplyr) 
my_data %>% group_by(category) %>% summarise_each(funs(max)) 

sortie est:.

# A tibble: 3 × 9 
    category Keyword1 Keyword2 Keyword3 Keyword4 Keyword5 Keyword6 Keyword7 Keyword8 
    <int> <int> <int> <int> <int> <int> <int> <int> <int> 
1  123  1  1  1  0  0  0  1  1 
2  144  0  0  1  0  0  0  1  1 
3  155  1  0  0  0  1  0  1  1 
+0

Est-il possible d'obtenir à la fois la valeur Keyword1 des lignes avec la même catégorie que "0, 1"? C'est une alternative de faire une sommation comme ci-dessus. Merci beaucoup. – emeralddove