2017-10-17 2 views
0

Dans Excel je peux faire le groupe de la colonne et compter, mais iam incapable de le faire dans l'affaire R.Trouver les valeurs entre la gamme de de 100 et leur nombre

Pour faire en R je suis en utilisant la fonction de coupe avec des pauses .

cut(elapsed, breaks=seq(min(elapsed),max(elapsed)+100,50), include.lowest=T) 

ici j'ai joint le png des données et la sortie requise. mais au-dessus du code ne donne pas ma sortie require.

ce sont les mes données

input data

et ma sortie nécessaire:

400  9 
500  4 
600  2 
700  5 
800  3 
900  3 
+4

Après avoir 'cut', vous devez regrouper en d'une certaine manière. 'table' a le plus de sens ici. – A5C1D2H2I1M1N2O1R2T1

+0

Pour que votre exemple soit reproductible, veuillez partager la sortie de 'dput (écoulé)' dans le résumé de la question. Et je suis d'accord avec @ A5C1D2H2I1M1N2O1R2T1, vous devez utiliser la fonction 'table' après avoir utilisé' cut'. – TUSHAr

Répondre

5

Cela devrait fonctionner:

data.frame(table(elapsed %/% 100)) 

Par exemple:

elapsed <- c(400, 423, 423, 534, 534, 639, 602, 812, 703) 
data.frame(table(elapsed %/% 100)) 
    Var1 Freq 
1 4 3 
2 5 2 
3 6 2 
4 7 1 
5 8 1 

Pour un résultat désiré dans des centaines utiliser ceci:

res <- data.frame(table(elapsed %/% 100)) 
res$Var1 <- as.numeric(res$Var1) * 100 
+0

@ user7462639 Est-ce que cela fonctionne? – PoGibas

+0

@ PoGibas salut, il n'est pas satisfait mon exigence complète, mais cela donne une idée.où j'ai fait erreur.J'essaie de manière différente en utilisant le ggplot2 .Je ne suis pas sûr est-ce processus correct ou non.Ggplot_build (ggplot() + aes (écoulé) + geom_histogram (binwidth = 100)) $ data [1] [[1]] [, c (2: 3)]. 'le code fonctionne parfaitement pour mes besoins. – user7462639

+0

Et Mes données sont modifiées dynamiquement à chaque fois, sur la base de ce que je dois ajuster les intervalles ** (100 à 10.000). ** Et compte combien de valeurs sont tomber dans les intervalles. pouvez-vous donner une idée, comment puis-je changer les intervalles basés sur les données dynamiques. Thankyou – user7462639

2

vous pouvez essayer:

require(magrittr) 

elapsed <- runif(100, 400, 1000) %>% round 

cut(elapsed, breaks = seq(400,1000,100), 
    labels = as.character(seq(400,900,100)), 
    include.lowest=TRUE) %>% table 

vous donne:

400 500 600 700 800 900 
15 22 16 9 20 18 
+3

Aucune fonction 'plyr' n'est utilisée dans cette réponse. Vous pouvez charger 'magrittr' pour le tuyau, (ou' dplyr', je suppose, moins directement). Pour de nouvelles questions, je recommanderais de ne pas utiliser le tuyau du tout ou d'expliquer ce que c'est. (Et expliquant que ce n'est pas absolument nécessaire.) – Gregor