2017-07-25 2 views
1

données:

structure(list(datetime = structure(c(6L, 2L, 4L, 5L, 1L, 3L), .Names = c("V1", 
"V2", "V3", "V4", "V5", "V6"), .Label = c(" 2016-12-01 00:00:30", 
" 2016-12-01 00:02:17", " 2016-12-01 00:06:17", " 2016-12-01 00:28:10", 
" 2016-12-01 01:17:02", "2016-12-01 00:00:00"), class = "factor")), .Names = "datetime", row.names = c("V1", 
"V2", "V3", "V4", "V5", "V6"), class = "data.frame") 

codeCréation d'une nouvelle colonne à l'aide des données de synthèse en R

library(lubridate) 
library(dplyr) 

data$datetime <- ymd_hms(data$datetime) 
data <- dplyr::arrange(data, datetime) 
data$hour <- cut.POSIXt(data$datetime, "hour") 
data %>% group_by(hour) %>% summarize(count = n()) 

sortie A Tibble: 2 x 2 heures nombre 1 2016-12 -01 00:00:00 5 2 2016-12-01 01:00:00 1

sortie dans l'ensemble de données d'origine DateTime Heure 2016-12-01 00:00:00 00 2016-12-01 00:00:01 00

de sortie désiré

DateTime  Hour Count 
       <fctr> <int> 
1 2016-12-01 00:00:00  5 
2 2016-12-01 01:00:00  1 

Je veux afficher le nombre d'enregistrements dans chaque heure et mettre ces nombres dans une nouvelle colonne appelée count. J'espère que vous avez compris mon problème. S'il vous plaît me aider les gars ..

Répondre

0

L'option serait d'ajouter separate dans le %>%

library(tidyr) 
res <- data %>% 
     group_by(hour) %>% 
     summarize(count = n()) %>% 
     separate(hour, into = c('DateTime', 'Hour'), sep=' ') 

Le group_by/summarize peut être modifié pour count

res <- count(data, hour) %>% 
      separate(hour, into = c('DateTime', 'Hour'), sep=' ') 
+0

Cela montre que le résumé en R console. il ne crée pas une nouvelle colonne dans mon ensemble de données avec des valeurs de comptage. comment faire ça?? –

+1

Ohh Merci beaucoup mon pote. à votre santé!!! –