2016-04-14 12 views
-1

Farklı cinslere, tedavilere, zaman dilimlerine ve mevsimlere göre bir hayvanın ortalama ev aralığı boyutunu gösteren ggplotta bir arsa oluşturmaya çalışıyorum . Ben R bir hata bu hata hakkında benzer mesajları okudum ama henüz bunu anlamaya edemedikggplot2 hatası: Estetik uzunluk 1 ya da verilerle aynı olmalıdır (24)

Error: Aesthetics must be either length 1 or the same as the data (24): x, y, colour, shape"

söyleyerek olsun. Bu sütunlarda NA yok ve sayısal değişkenlerim böyle davranılıyor. Hatanın veriyi ayarlamak için bir gereksinim olması gerektiğinden emin değilim, ancak bunu nasıl yapmam gerektiğini anlamıyorum. Kodum ggplot parçası kadar iyi çalışır ve onu şudur:

dput(Mean_HR) structure(list(season = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Early_dry", "Late_dry", "Wet"), class = "factor"), treatment = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L ), .Label = c("C", "E"), class = "factor"), sex = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("F", "M"), class = "factor"), time = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("A", "B"), class = "factor"), mean_HR = c(141.594090181, 138.327188493, 509.287443507692, 345.296845642381, 157.634028930833, 184.202160663125, 252.464096340667, 255.078012825, 59.8485325981818, 143.158189516522, 439.990400912593, 175.410885601333, 221.338774452381, 100.942251723636, 127.961533612727, 167.199563142143, 120.60363022375, 142.351764574211, 249.03854219, 330.018734301176, 123.992902995714, 219.886321226667, 307.869373359167, 296.019550844286), se_HR = c(18.6245437612391, 29.2548378154774, 127.987824704623, 78.9236194797204, 20.8897993194466, 43.1314245224751, 57.6327505533691, 32.1129054260719, 9.383853530199, 38.7678333459788, 130.348285186224, 31.707304307485, 29.1561478797825, 15.4038723326613, 18.1932127432015, 37.791782522185, 32.7089231722616, 33.2629181623941, 46.1500408067739, 88.8736578370159, 15.8046627788777, 36.9665360444972, 70.1560303348504, 87.1340476758794), lwrHR = c(122.969546419761, 109.072350677523, 381.29961880307, 266.373226162661, 136.744229611387, 141.07073614065, 194.831345787298, 222.965107398928, 50.4646790679828, 104.390356170543, 309.642115726369, 143.703581293848, 192.182626572598, 85.5383793909751, 109.768320869526, 129.407780619958, 87.8947070514884, 109.088846411816, 202.888501383226, 241.145076464161, 108.188240216837, 182.91978518217, 237.713343024316, 208.885503168406), uprHR = c(160.218633942239, 167.582026308477, 637.275268212315, 424.220465122101, 178.52382825028, 227.3335851856, 310.096846894036, 287.190918251072, 69.2323861283808, 181.9260228625, 570.338686098816, 207.118189908818, 250.494922332163, 116.346124056298, 146.154746355929, 204.991345664328, 153.312553396012, 175.614682736605, 295.188582996774, 418.892392138192, 139.797565774592, 256.852857271164, 378.025403694017, 383.153598520165)), class = c("grouped_df", "tbl_df", "tbl", "data.frame"), row.names = c(NA, -24L), vars = list( season, treatment, sex), drop = TRUE, .Names = c("season", "treatment", "sex", "time", "mean_HR", "se_HR", "lwrHR", "uprHR" ))

birisi bana bu hatayı anlamaya yardımcı olabilir ve:

istediği gibi
library("ggplot2") 
library("dplyr") 

lion_HR_size <- read.csv(file = "https://dl.dropboxusercontent.com/u/23723553/lion_sample_data.csv", 
      header= TRUE, row.names=1) 

# Mean of home range size by season, treatment, sex and time 
Mean_HR <- lion_HR_size %>% 
group_by(season, treatment, sex, time) %>% 
summarize(
mean_HR = mean(Area_HR_km), 
se_HR = sd(Area_HR_km)/sqrt(n()), 
lwrHR = mean_HR - se_HR, 
uprHR = mean_HR + se_HR) 

limitsHR <- aes(ymin = lwrHR, ymax= uprHR) 

ggplot(Mean_HR, 
aes(x=season, 
y= Mean_HR, 
colour=season, 
shape= season)) + 
geom_point(size = 6, alpha = 0.5)+ 
facet_grid(sex ~ treatment+time)+ 
geom_errorbar(limitsHR, width = 0.1, col = 'red', alpha = 0.8)+ 
theme_bw() 

, dput (Mean_HR) çıktısı şöyledir kodumda nasıl düzeltilir? Çok teşekkürler!

+0

Örneğinizde veri kümenizi "beden" olarak adlandırın, ancak sonra "lion_HR_size" adlı bir özeti özetleyin. Sadece 'dput (Mean_HR) 'sonucunu sorgunuza kopyalayıp yapıştırabilir misiniz? – aosmith

+0

dropbox bağlantısı yine de öldü. – Axeman

+0

Maalesef, dosyanın adını düzelttim ve dropbox bağlantısı tekrar çalışıyor. Ayrıca aosmith soruma dput (Mean_HR) ekledim. Yardım için şimdiden teşekkürler! – AnnK

cevap

0

limitsHR <- ... ifadesinin işe yarama neden neden kendiliğinden emin değilim. Çalışma alanında lwrHR ve uprHR nesnelerini bulamamayı durdurmayı beklerdim.

Her neyse, ggplot size muazzam yardımcı olacak güzel bir işlev mean_se() sahiptir.

ggplot(data = lion_HR_size, mapping = aes(x = season, y = Area_HR_km, 
              colour=season, shape= season)) + 
    stat_summary(fun.data = mean_se) + 
    facet_grid(sex ~ treatment+time)+ 
    theme_bw() 
+0

Mükemmel çalıştı! Teşekkürler, bu mean_se() çok yardımcı olur! – AnnK

İlgili konular