2015-12-07 8 views
6

hesaplamalarını yaparken unit = "xxx" kullanılmaz. Aşağıdaki örnekteDeğerleri hesapladıktan sonra difftime birimleri nasıl değiştirilir ve

sütunlar, posixct tarih değerleridir. Kullanabileceğim diğer değişkenlerin farktır yeni bir değişken oluşturmak için: Varsayılan olarak

library (dplyr) 
bb<-aa<-mutate(bb, day1=abs(FECHA_EFECTO_ESTADO-FECHA_ANIVERSARIO_POLIZA)) 
bb 
    FECHA_EFECTO_ESTADO FECHA_ANIVERSARIO_POLIZA   day1 
1 2015-11-05 09:49:00    2015-11-05 9.816667 hours 
2 2015-11-05 09:51:00    2015-11-04 33.850000 hours 

, birimler (gün, saat, saniye) gün1 değişken farkı miktarına bağlıdır eğer. Günlerdir farkı olmasını istiyorsanız, elimden:

bb<-mutate(bb, day2=abs (difftime(FECHA_EFECTO_ESTADO, FECHA_ANIVERSARIO_POLIZA, units="days"))) 
bb 
    FECHA_EFECTO_ESTADO FECHA_ANIVERSARIO_POLIZA   day1   day2 
1 2015-11-05 09:49:00    2015-11-05 9.816667 hours 0.4090278 days 
2 2015-11-05 09:51:00    2015-11-04 33.850000 hours 1.4104167 days 

hesaplamaları yaptıktan sonra birimleri (bu durumda gün) belirtmek için bir yol var MI? Analizde, saatlerce farkı tercih etmeyi tercih ederim. Yani:
Day1 veya day2 sütunlarını bir posteriori olarak nasıl değiştirebilirim?
Teşekkür

cevap

6

Ne difftime tarafından döndürülen sınıf "Farklı Zmn" nin bir nesnedir.

Diğer işlevler, zorlama için yöntemlere sahiptir. Örneğin, bir sayısal olarak, saat sayısı dönüştürmek:

as.numeric(difftime("2015-12-07", "2015-12-05"), units="hours") 

[1] 48

Veya almak için haftalar:

as.numeric(difftime("2015-12-07", "2015-12-05"), units="weeks") 

[1] 0.2857143

Ayrıca, POSIXct nesnelerinin aslında sayı olduğunu hatırlamanız yararlı olabilir! ‘1970-01-01 00:00.00 UTC’'dan beri geçen saniye sayısını temsil ederler (Gregorian Takvimi varsayar). Sonuç olarak, bir sabit zaman süresinin (yani, "ay" gibi bir şey olmayan, sabit olmayan) bir zamanını düşünmek ve onu kullanarak hesaplamaları gerçekleştirmek genellikle uygun olabilir. Örneğin, zaman farkınız saniye cinsinden olduğunda, diğer sabitlere (teknik olarak bunlardan bazılarında çok ince ölçekli bir varyasyon vardır, ancak çoğu uygulama bu ayrıntılara dikkat gerektirmez) dakikalar, saatler, günler gibi zaman birimleridir. veya haftalar.

+1

teşekkürler @rbatt. Bütün gün sütununu saat olarak değiştirmek için bir yol arıyordum; veya "day1" günlerine sütun. Cevabınızdan alıyorum ki şunu görebiliyorum ki, eğer bb $ day1 <- as.numeric (bb $ day1, units = "days") 'day1 değişkeninin birimlerini saatlerden günlere değiştirebilirim !! –

+0

@MiguelRayonGonzalez Bu cevabı faydalı buldunuzsa, onu tekrar gözden geçirmelisiniz. Sorunuzu cevapladıysa, kabul etmeyi düşünmelisiniz. – rbatt

2

Şimdi, teşekkür benim örnekte ben bb$day1<- as.numeric(bb$day1, units="days")

yapabilirsiniz değişken day1 birimlerini değiştirmek için, fark var @rbatt Ve bu günlere birimleri değişecektir:

FECHA_EFECTO_ESTADO FECHA_ANIVERSARIO_POLIZA   day1   day2 
9 2015-11-05 09:49:00    2015-11-05 9.816667 hours 0.4090278 days 
10 2015-11-05 09:51:00    2015-11-04 33.850000 hours 1.4104167 days 

bb$day1<- as.numeric(bb$day1, units="days") 

bb 

    FECHA_EFECTO_ESTADO FECHA_ANIVERSARIO_POLIZA  day1   day2 
9 2015-11-05 09:49:00    2015-11-05 0.4090278 0.4090278 days 
10 2015-11-05 09:51:00    2015-11-04 1.4104167 1.4104167 days 
İlgili konular