So speichern und laden Sie eine RDS-Datei in R
Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.
Ich zeige Ihnen, wie Sie der M-Funktion Ihrer Datumstabellenabfrage einen Parameter hinzufügen . Dieses Beispiel basiert auf einer Frage, die im gestellt wurde . Sie können sich das vollständige Video dieses Tutorials unten in diesem Blog ansehen.
Die Frage war, wie man die Nummerierung des 1. Wochentags von 0 auf 1 umstellen kann . Beachten Sie, dass sich dadurch der tatsächliche Beginn des Wochentags nicht ändert. In dieser Datumstabelle ist der Wochenbeginn immer Montag. Es geht nur darum, den Montag als Tag 1 statt als Tag 0 zu bezeichnen.
Dieser Prozess ist nicht unbedingt komplex, Sie benötigen jedoch ein grundlegendes Verständnis für die Struktur der M-Sprache. ansehen . Die Einleitung berührt das Thema.
Inhaltsverzeichnis
Die M-Funktion und die erweiterte Datumstabelle
Lassen Sie mich zunächst auf Power Query eingehen . Ich habe die M-Funktion der Datumstabelle bereits hier kopiert .
Ich habe die M-Funktion aus der Kategorie „M Code Showcase“ im LuckyTemplates-Forum erhalten . Der Code befindet sich unter dem Thema .
Wenn ich den erweiterten Editor öffne , ist dies der Code.
Da ist viel M-Code drin, was ablenken könnte.
Erstellen einer Testabfrage
Da in der M-Funktion zu viel los ist, beginne ich stattdessen mit einer neuen leeren Abfrage .
Ich werde diese Testabfrage nennen .
Als Nächstes öffne ich den erweiterten Editor .
Da ich eine Funktion erstelle, füge ich ein Paar Klammern hinzu und lösche den gesamten darin enthaltenen Standardcode.
Um die Funktion zu starten, werde ich einen optionalen Parameter deklarieren .
Als nächstes füge ich eine Variable hinzu. Ich nenne diese Variable WDStartNum , da sie für die Startnummer des Wochentags steht. Ich muss auch seinen Typ deklarieren, also gebe ich number ein .
Ich deklariere den Typ, um Fehler zu vermeiden. Wenn ich es einfach auf einem beliebigen Typ lasse, bedeutet das, dass es eine Tabelle oder einen Datumswert übergeben könnte, anstatt nur Zahlen.
Der nächste Schritt besteht darin, die let- Klausel und die in -Klausel hinzuzufügen .
Unter der let-Klausel benötige ich einen Variablennamen. Daher werde ich diese Variable WDStart nennen .
Jetzt muss ich testen, ob die WDStartNum übergeben wurde. Wenn es erfolgreich ist, entspricht es nicht null . Ich werde also erklären, dass ich einen Wert zurückgeben möchte, wenn WDStartNum nicht gleich Null ist .
Was die in-Klausel betrifft, möchte ich, dass derselbe Schritt ausgeführt wird. Also füge ich dort einfach WDStart ein , so wie wir unsere Variable zuvor unter der let-Klausel benannt haben.
Sobald ich auf „Fertig“ drücke, wird die Funktion erstellt. Also werde ich versuchen, einen Wert über diese Funktion zu übergeben.
Ich werde versuchen, den Buchstaben „a“ einzugeben.
Denken Sie daran, dass ich zuvor erklärt habe, dass der Wert eine Zahl sein muss. Da erkannt wird, dass der von mir eingegebene Wert diese Anforderung nicht erfüllt, kann ich diesen Parameter nicht eingeben.
Also werde ich das löschen und das Feld einfach leer lassen.
Sobald ich auf „Invoke“ klicke, wird der Wert 0 zurückgegeben.
Zurück zu meiner ursprünglichen Abfrage: Sie besagt, dass WDStartNum zurückgegeben werden sollte, wenn der Wert ungleich Null ist. Wenn es gleich null ist, sollte eine 0 zurückgegeben werden.
Damit ist 0 richtig.
Dieses Mal werde ich versuchen, einen Wert zu übergeben, indem ich die Zahl in der TestQuery ändere. Tatsächlich gibt es eine „1“ zurück, sobald ich die Eingabetaste drücke.
Lassen Sie mich nun versuchen, 2020 in der TestQuery zu bestehen. Sobald ich die Eingabetaste drücke, wird auch 2020 zurückgegeben.
Offensichtlich möchte ich nicht, dass das passiert. Da ich einen Wert möchte, der den Beginn der Woche darstellt, möchte ich, dass entweder eine 0 oder eine 1 angezeigt wird. Das bedeutet, dass ich einen weiteren Test erstellen muss, um zu sehen, ob die eingegebene Zahl entweder eine 0 oder eine 1 ist. Dazu kann ich die Funktion List.Contains verwenden.
Verwenden von List.Contains
Ich habe eine leere Abfrage erstellt und List.Contains eingegeben, ohne eine Klammer zu verwenden.
Sobald ich die Eingabetaste drücke, kann ich die Dokumentation zu dieser Funktion sehen.
List.Contains gibt an, ob die Liste einen Wert enthält.
Daher ist eine Liste als erster Parameter erforderlich, und danach wird ein Wert hinzugefügt. Wenn dieser Wert in der Liste gefunden wird, wird „true“ zurückgegeben. Andernfalls wird false zurückgegeben.
Ich öffne den erweiterten Editor erneut, damit ich die erforderlichen Änderungen an meiner Abfrage vornehmen kann.
Anstatt zu testen, ob ein Wert ungleich Null ist, verwende ich List.Contains .
Jetzt gebe ich eine Liste von Werten an, die auf diese Funktion angewendet werden sollen.
Ich werde geschweifte Klammern als Listeninitialisierer verwenden. In diese geschweiften Klammern setze ich 0, 1. Ich füge ein Komma hinzu, nachdem ich diese Klammer geschlossen habe.
Für den zweiten Parameter verwende ich WDStartNum. Dann füge ich die schließende Klammer hinzu.
Wenn dies vorhanden ist, bedeutet dies, dass eine 0 oder 1 mir die WDStartNumber geben sollte. Wenn etwas anderes als eine 0 oder eine 1 eingegeben wird, sollte das Ergebnis 0 sein.
Lassen Sie mich das testen, indem ich 2020 in die TestQuery einfüge. Wie erwartet wird eine „0“ (Null) zurückgegeben.
Das liegt daran, dass der Wert 2020 nicht in der Liste enthalten ist.
Hinzufügen des Parameters zur M-Funktion
Da ich nun sicher bin, dass der Code funktioniert, kann ich ihn endlich in die eigentliche Datumstabelle und M-Funktion einfügen. Ich öffne den erweiterten Editor und kopiere dann die Logik .
Dann steige ich in die Datumstabellenabfrage ein.
Ich öffne die ursprüngliche M-Funktion über den erweiterten Editor .
Dann werde ich dort meinen Code einfügen. Stellen Sie sicher, dass am Ende der Zeile ein Komma steht.
Als nächstes werde ich meinen Parameternamen hervorheben und kopieren .
Dann werde ich diesen Parameter hier hinzufügen .
Beachten Sie, dass ich zuerst ein Komma am Ende der vorhandenen Zeile hinzufügen und dann diesen Parameter als optional deklarieren muss . Dann kann ich WDStartNum platzieren und den Typ hinzufügen .
Ich habe den Parameter hinzugefügt und auch die Logik eingebettet. Aber ich muss auch sicherstellen, dass ich die erwarteten Ergebnisse erhalte. Also werde ich nach der Codezeile suchen, die den Wochentag abdeckt.
Dann füge ich + WDStart hinzu .
Ich klicke auf „Fertig“ , um den Editor zu schließen. Dann werde ich die Abfrage aufrufen.
Als Startdatum gebe ich den 1. Januar 2020 ein, dann verwende ich den 31. Dezember 2020 als Enddatum.
Ich verwende „7“ als Startmonat des Geschäftsjahres und gebe dann „0“ als WDStartNum ein.
Ich klicke auf „Invoke“. Jetzt habe ich die Datumstabelle.
Ich werde es umbenennen, um sicherzustellen, dass es leicht identifiziert werden kann.
Jetzt werde ich die Ergebnisse überprüfen.
Dies ist meine DayOfWeek- Kolumne.
Es zeigt, dass Montag als 0 zurückgegeben wurde.
Um auf die Frage im Forum zurückzukommen: Ich muss die Zahl des Wochenanfangs auf 1 statt auf 0 ändern. Also werde ich das einfach in der Kennzahl ändern.
Wenn ich die Eingabetaste drücke, ist Montag nun Tag 1 statt Tag 0.
Betrachtet man den Zahlenbereich, so reicht dieser nun von 1 bis 7 statt von 0 bis 6.
Was passiert, wenn ich einen Nullwert übergebe?
Dann wird DayOfWeek für Montag einfach wieder auf 0 gesetzt.
Verwenden der M-Funktion zum Erstellen einer erweiterten LuckyTemplates-Datumstabelle.
Einsteigerhandbuch zum M-Code in LuckyTemplates.
Einrichten eines dynamischen Startdatums und Enddatums für Power Query-Datumstabellen
Abschluss
Auf diese Weise können Sie der M-Funktion Ihrer Datumstabellenabfrage einen zusätzlichen Parameter hinzufügen. Der Prozess ist, wie ich bereits erwähnt habe, überhaupt nicht komplex. Solange Sie eine Quelle für den M-Code haben, ist es von dort aus ganz einfach.
Auch hier können Sie sich jederzeit den Kurs „Erweiterte Datentransformationen und Modellierung“ in Online ansehen, wenn Sie keine Kenntnisse über die Funktionsweise von M-Codes haben.
Alles Gute,
Melissa
***** LuckyTemplates lernen? *****
Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.
Was ist Self in Python: Beispiele aus der Praxis
In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.
In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.
In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.
Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.
Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.
In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.
Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.
Was ist LuckyTemplates Gateway? Alles was du wissen musst