2017-08-18 24 views
1

私は、昼光を時間で示す4列のデータフレームを持っています。私は、異なるグループを比較するためにboxplotを作成する必要がありますまた、グループを比較するanovaテストを取る。ここに私がやったことはありますが、うまくいきません。時間形式データのboxplotの作成方法は?

A   B   C  D 
15:15:08 15:29:08 15:32:50 15:34:12 
15:02:32 15:23:43 15:21:06 15:34:50 
14:40:34 14:58:30 15:21:06 15:32:50 
15:15:08 15:29:08 15:21:06 15:34:50 
15:10:03 14:58:30 15:30:01 15:34:12 
15:23:43 15:19:42 15:30:01 15:34:00 
14:56:24 15:29:08 15:21:06 15:34:50 
15:15:08 14:58:30 15:24:56 15:34:50 
15:15:08 14:58:30 15:32:50 15:34:12 
14:56:24 14:42:57 15:32:50 15:34:50 
14:56:24 14:47:35 15:21:06 15:30:01 
14:56:24 15:23:43 15:24:56 15:34:12 
15:15:08 14:49:51 15:30:01 15:34:12 
15:02:32 15:32:50 15:30:01 15:27:10 
15:10:03 15:29:08 15:34:12 15:34:12 

DF<-as.POSIXct(DF$A, format = "%H:%M:%S") 
DF<-as.POSIXct(DF$B, format = "%H:%M:%S") 
DF<-as.POSIXct(DF$C, format = "%H:%M:%S") 
DF<-as.POSIXct(DF$D, format = "%H:%M:%S") 


boxplot(DF) 
Df.anova <- c(DF$A, DF$B, DF$C, DF$D) 
groups = factor(rep(letters[1:4], each = 15)) 

fit = lm(formula = Df.anova~ groups) 
anova (fit) 
+0

おそらく秒数に変換します。それが私の頭に浮かぶ最初のことです。 – Masoud

答えて

1

as.ITimeを使用して時間を時間に変換します。次に、ボックスプロットをプロットし、ペアワイズt検定を使用してグループを比較します。 RのAnovaはすべての手段が平等であることをテストします。これはあなたがこの機会に必要とするものではないと私は仮定します:

library(data.table) 
#convert to hours 
DF[] <- lapply(DF, function(x) as.numeric(as.ITime(x))/3600) 

#boxplots 
boxplot(DF) 

#melt the data.frame and calculate pairwise t.tests 
meltedDF <- melt(DF) 
pairwise.t.test(meltedDF$value, meltedDF$variable) 

#Pairwise comparisons using t tests with pooled SD 

#data: meltedDF$value and meltedDF$variable 
# 
# A  B  C  
#B 0.24228 -  -  
#C 9.9e-06 0.00073 -  
#D 4.1e-08 5.0e-06 0.24228 

#P value adjustment method: holm 
関連する問題