2017-10-05 4 views
0

En utilisant le paquet lubridate Je veux ajouter des secondes (dans le but de l'exemple) à un champ "POSIXct", "POSIXt" dans un cadre.erreur mutate_impl dans dplyr/lubridate ajouter l'heure de la date

b <- structure(list(`"a"` = c("a", "a", "a", "a", "a"), Date_time = structure(c(1506694322, 
1506694270, 1506693970, 1506693897, 1506693849), class = c("POSIXct", 
"POSIXt"), tzone = "")), .Names = c("\"a\"", "Date_time"), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -5L)) 

b %>% 
    mutate(tol_lower = Date_time - second(2), 
     tol_lower = Date_time + second(30)) 

Je reçois l'erreur:

Error in mutate_impl(.data, dots) : 'origin' must be supplied 

Pourquoi est-ce? J'apprécie que je puisse calculer des heures, mais j'aimerais savoir ce que je fais mal.

: Non loin se

-J'ai essayé as.Date, ce qui donne la même erreur.

-Je peux ajouter quelques secondes directement sans problème: tol_lower = Date_time - 2

Répondre

0

Whyn't utiliser?

b %>% mutate(tol_lower = Date_time - 2, 
      tol_upper = Date_time + 30) 

Si vous voulez ajouter des heures à ce jour donné, puis il suffit d'utiliser Date_time + 2*60*60 (à savoir 2 heures supplémentaires à Date_time).


également ?second dit clairement que x dans second(x) est un « objet date-heure », mais dans votre cas vous essayez de passer un entier.

J'espère que ça aide!