2016-04-01 12 views
-1

Tablo bir Ay/Yıl alanından, yani "Ocak 2016" dan oluşmaktadır. I (Oca 2016 tarih sırayla X ekseni görüntülemek için yeniden sıralamak bir Boxplot nasıl kullanırım ... Şubat 2016 .... Aşağıdaki kodu kullanarak çalıştı Ne:R kutu görünümü: Tarih alanını nasıl yeniden düzenlerim?

 boxplot(YR$S~reorder(format(YR$MY,'%M %Y'),YR$MY),outline =FALSE) 
<pre> 

IDX MY Day V Time G S W 
24 January 2015 1 G 1821 6 11 71 
25 January 2015 2 G 1600 9 15 1 
26 January 2015 5 G 1700 5 14 64 
27 January 2015 6 F 1805 3 14 4 
28 January 2015 7 G 1716 3 15 45 
29 January 2015 9 F 1910 3 8 38 

+1

cevap biçime bağlıdır (S = güneş lekelerinin sayısı MY = ay-yıl alanına) Veriler içeriyor. Sütun bir Tarih, dize veya faktör olarak biçimlendirilmiş mi? Bir öneride bulunmadan önce verilerinizin bir örneğini görmenize yardımcı olur. – Dave2e

+2

Sadece "dput" kullanarak küçük bir veri örneği sağlayabilir misiniz? – steveb

+0

'' boxplot'u (..., = 5: 1) ' – rawr

cevap

0

Ben verilerin biçimine bağlı Yukarıda bahsedildiği ve As en iyi nasıl bin verileri (günlük olarak günlük) tavsiyeyi etkileyecektir. Aşağıda ben dikkate alacağını farklı yaklaşımlar olduğu (en iyi yol olmayabilir ama işi alabilmek için):

#Sample data 
string<-rep(c("January 2016", "February 2016", "March 2016"), 3) 
day<-rep(c(1:3), each=3) 
value<-runif(9,10, 20) 
#data frame with string, int and float 
df<-data.frame(string, day, value) 

#Date as string 
boxplot(df$value~df$string, las=2, main="String") 
#undersirable - x - axis not in order 

#Date as a Date Class 
#convert to Date Class 
#xdate<-as.Date(paste(df$string, day), format= "%B %Y %d") 
#Need to convert everything to first of month to bin by month 
xdate<-as.Date(paste(df$string, 1), format= "%B %Y %d") 
b<-boxplot(df$value~xdate, las=2, main="Date", names=unique(months(xdate))) 
#Good - may need work on x axis labels 

#Date as a factor 
#convert to factor 
xfactor<-as.factor(df$string) 
#sets the factors in month order (drops the year suffix) 
xfactor<-factor(xfactor, levels = paste(month.name, "2016")) 
#remove unused levels 
xfactor<-droplevels(xfactor) 
boxplot(df$value~xfactor, las=2, main="factor") 
#Good - may need work on x axis labels depending in timeframe on interest 

Tüm üç deneme onların yanlısı ve eksilerini ve ilk biçimine bağlı olması, ne kadar veri, Rapor sıklığı ve nihai sonuçlar en iyi yaklaşımı belirler. Bu yardımcı olur umarım.

0

dönüştürme senin

y <- YR$S 
oldloc <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "english") 
x <- as.Date(with(YR, paste(paste(MY, Day, sep = "-"))), format="%B-%Y-%d") 
Sys.setlocale("LC_TIME", oldloc) 
boxplot(y~x) 

R bildiği yabancı lang içinde "Ocak" nasıl yorumlanacağı yüzden İngilizce'ye yerel ayarlayın: boxplot x ekseni için uygun sürekli ölçek alır ve otomatik olarak değerlerini sipariş edebilirsiniz böylece bu sınıfta Date yılına dayanmaktadır, Uages (Almancada örneğin "Januar"). Zaten İngilizce olarak ayarlanmıştır eğer

Veri kullanıldığı ... o ihmal edilebilir:

YR <- read.table(header=T, text=" 
MY Day V Time G S W 
February-2015 1 G 1821 6 11 71 
January-2015 2 G 1600 9 15 1 
January-2015 5 G 1700 5 14 64 
January-2015 6 F 1805 3 14 4 
January-2015 7 G 1716 3 15 45 
January-2015 9 F 1910 3 8 38") 
0

Yanıtlarınız için hepinize teşekkür ederiz. Çok daha kısa ve daha basit bir kirlilik olduğu ortaya çıkıyor. . Kütüphanesi "Rlab" İşte "bplot denilen bir kutu grafiği inşa + binning işlevi vardır bir copde örnek:

library(Rlab) 
bplot(MY,S)