2012-12-05 9 views
-1

J'ai cherché sur les forums et ne pouvais pas trouver tout ce qui fonctionnerait pour moi. J'ai un ensemble de données un peu unique où j'ai enregistré ce que j'ai fait avec chaque heure de ma journée, et je veux juste trouver toutes les entrées uniques pour le moment. Par exemple, il y a des entrées «sommeil», «devoirs», «dîner», tout au long d'une centaine de jours, et je veux juste trouver toutes les choses possibles que j'ai faites alors, toutes les entrées uniques.en essayant de trouver des valeurs uniques en utilisant R

J'ai essayé unique (données), ce qui ne m'amène nulle part, et j'ai essayé unique (données [, 1]). Si j'écris une boucle 'for' pour faire cela, comment puis-je fusionner la liste et réduire davantage leur unicité?

> data[, 1] 
[1] morning prep work   work   work   work   
[6] work   work   work   work   homework  
[11] MNT   chat with Dan dinner  movie   movie   
[16] sleep   sleep   sleep   sleep   sleep   
[21] sleep   sleep   sleep   sleep      
Levels: chat with Dan dinner homework MNT morning prep movie sleep work 

Et sa classe est un 'facteur'. Unique pares vers le bas bien, mais comment puis-je combiner tous les jours dans un long vecteur de caractère que je peux utiliser pour faire mon analyse, comme ...

sum(data=='sleep') 

Mais avec ma liste, je serai en mesure pour écrire une autre boucle 'for' et additionner tout facilement ...

+5

S'il vous plaît montrer comment votre apparence données. 'unique' devrait être bien, le seul problème peut être avec le format de données ... essayez unique (data $ action) ou ce que vous avez ... – sashkello

Répondre

0

J'ai l'impression que vous cherchez simplement la fonction table. Tractions vos facteurs et compte la fréquence en une seule fois « unique »:

myHomework <- data.frame(StuffIDid = c("morning prep", "work", "work", "work", 
             "work", "work", "work", "work", "work", 
             "homework", "MNT", "chat with Dan", 
             "dinner", "movie", "movie", "sleep", 
             "sleep", "sleep", "sleep", "sleep", 
             "sleep", "sleep", "sleep", "sleep")) 
str(myHomework) 
# 'data.frame': 24 obs. of 1 variable: 
# $ StuffIDid: Factor w/ 8 levels "chat with Dan",..: 5 8 8 8 8 8 8 8 8 3 ... 
table(myHomework[, "StuffIDid"]) 
# 
# chat with Dan  dinner  homework   MNT morning prep   movie 
#    1    1    1    1    1    2 
#   sleep   work 
#    9    8 

Ou, comme data.frame:

data.frame(table(myHomework[, "StuffIDid"])) 
#   Var1 Freq 
# 1 chat with Dan 1 
# 2  dinner 1 
# 3  homework 1 
# 4   MNT 1 
# 5 morning prep 1 
# 6   movie 2 
# 7   sleep 9 
# 8   work 8 
Questions connexes