2016-10-26 2 views
0

Im Versuch, Sätze aus einem Datenrahmen zu erzeugen Nachfolgend finden Sie die DatenrahmenGebäude Sätze aus einem Datenrahmen in R

# Code 
mycode <- c("AAABBB", "AAABBB", "AAACCC", "AAABBD") 
mycode <- sample(mycode, 20, replace = TRUE) 

# Date 
mydate <-c("2016-10-17","2016-10-18","2016-10-19","2016-10-20") 
mydate <-sample(mydate, 20, replace = TRUE) 

# resort 
myresort <-c("GB","IE","GR","DK") 
myresort <-sample(myresort, 20, replace = TRUE) 

# Number of holidaymakers 
HolidayMakers <- sample(1000, 20, replace = TRUE) 

mydf <- data.frame(mycode, 
        mydate, 
        myresort, 
        HolidayMakers) 

Wenn wir also mycode als Beispiel nehmen, möchte ich einen Satz erstellen, wie „Für den Code mycode, sind die größten Ziele myresorts wo die Top-tägigen mydate mit insgesamt HolidayMakers "

waren besuchen Wenn wir, dass es annehmen mehrere Zeilen pro Code sind. Was ich will, ist ein einziger Satz, wo beispielsweise statt einem Satz mit je mydate und myresort, Ich mag würde, etwas sagen, wie

„Für den Code AAABBB, sind die größten Ziele GB, GR, DK, IE, wo die Top-Tage des Besuchs waren 2016-10-17,2016-10-18,2016-10-19 mit insgesamt 650 "

Die 650 wäre im Grunde eine Summe aller Urlauber für all diese Länder für diejenigen Tage pro mycode

Irgendwelche Hilfe?

Vielen Dank für Ihre Zeit

+0

Wenn Sie die "besten Tage des Besuchs" sagen, führen Sie irgendwelche Berechnungen durch? Top 3 Tage von HolydayMakers, häufigste Tage ..? Auch für "AAABBB" warum nicht 2016-10-20 enthalten? –

+0

Hi @ StevenBeaupré Der Datenrahmen ist das Endergebnis der Berechnung. Das enthält Top 3. Für die Zwecke der Erklärung dachte ich, es wäre besser, nur eine allgemeine Lösung als Tage ändern und Coupon-Nummern auch tun und nicht alle Tage werden anwesend sein –

Antwort

2

Sie könnten versuchen:

library(dplyr) 
res <- mydf %>% 
    group_by(mycode) %>% 
    summarise(d = toString(unique(mydate)), 
      r = toString(unique(myresort)), 
      h = sum(HolidayMakers)) %>% 
    mutate(s = paste("For the code", mycode, 
        "the biggest destinations are", r, 
        "where the top days of visiting were", d, 
        "with a total of", h)) 

Welche gibt:

> res$s 

#[1] "For the code AAABBB the biggest destinations are GB, GR, IE, DK 
#  where the top days of visiting were 2016-10-17, 2016-10-18, 
#  2016-10-20, 2016-10-19 with a total of 6577" 
#[2] "For the code AAABBD the biggest destinations are IE 
#  where the top days of visiting were 2016-10-17, 2016-10-18 
#  with a total of 1925"          
#[3] "For the code AAACCC the biggest destinations are IE, GR, DK 
#  where the top days of visiting were 2016-10-20, 2016-10-17, 
#  2016-10-19, 2016-10-18 with a total of 2878"  

Hinweis: Da Sie keine Anleitung, wie Sie vorsah die "besten Besuchstage" berechnen wollen, habe ich einfach alle Tage mitgerechnet. Sie können das oben genannte einfach bearbeiten, um es Ihrer tatsächlichen Situation anzupassen.

+1

Vielen Dank, Dies ist genau das, was ich suchte für und viel eleganter als das, was ich versuchte –

Verwandte Themen