Konvertieren von R in ein JMP-SkriptHallo,
Ich bin mit R nicht vertraut und habe mit JMP gearbeitet (noch Anfänger).Ich habe R-Code, den ich in ein JMP-Skript konvertieren muss.Ich habe JMP angerufen und sie haben mir vorgeschlagen, hier etwas zu posten, um zu sehen, ob mir jemand helfen kann?
Der R-Code ist hier enthalten abcd_discrimination/demographics_baseline_clean.R bei main · barzilab1/abcd_discrimination · GitHub
und ich habe das Datenblatt in JMP, nur keine Ahnung, wie ich das Skript konvertieren soll.
Gibt es jemanden, der helfen kann?
Ich habe die Datei im TXT-Format angehängt
Vielen Dank im Voraus für Ihre Hilfe.
Automatisierung und SkripterstellungBetreff: Konvertieren von R in ein JMP-SkriptVIELEN DANK.Ich schätze Ihre Zeit und Hilfe!
Betreff: Konvertieren von R in ein JMP-SkriptIch sollte auch beachten, dass ein anderer Benutzer aus der Community mich kontaktierte und versuchte, den R-Code auszuführen, aber einige Fehler hatte; Beachten Sie, dass die wahrscheinliche Ursache für das „wie besehen“ geschriebene R-Skript mit veralteten Pfadeinstellungen in den Dienstprogrammdateien zusammenhängt.
@GraphicalScore9 Ich empfehle Ihnen, sich an den Eigentümer des GIT-Repositorys zu wenden oder zu prüfen, ob die CSV-Datei bereits vorhanden ist.Leider ist es nicht ungewöhnlich, dass R-Code nicht mehr funktioniert (dies ist eines der Probleme mit Open-Source-Software, die Sie bei JMP oder SAS nicht haben).
Betreff: Konvertieren von R in ein JMP-SkriptDanke Mark! Das ist sehr hilfreich!
Bezüglich einiger der von Ihnen erwähnten Ressourcen im Zusammenhang mit den in JMP verfügbaren R-Funktionen möchte ich hier anmerken, dass auch die Online-Supportdokumentation eine gute Referenz wäre: https://www.jmp.com/support/help/en/16.2/#page/jmp/import-data-from-r.shtml#
Mit freundlichen Grüßen Patrick
Betreff: Konvertieren von R in ein JMP-SkriptBei diesen Schritten handelt es sich um eine Datenbereinigung. „demographics_set“ ist eine Datentabelle, die einer JMP-Datentabelle ähnelt.
R verwendet die Konvention: demographics_set[rows,columns]. Wenn Sie also die folgende Zeile unten haben, wird sie auf alle Zeilen angewendet, da sich in den Klammern links vom Komma nichts befindet. Für die Spalte „sex_br“ wird ein Wert von 1 für „F“ und 0 für „M“ (und alles NICHT „F“) zugewiesen. Die Logik ist, dass (sex == „F“) 1 zurückgibt, wenn WAHR, und 0, wenn FALSCH. Das „:=" ist ein linker Zuweisungsoperator (Infix). R erkennt diesen Operator möglicherweise zunächst nicht, daher müssen Sie möglicherweise die Zeile „:=“ <- „<-“ vor dem Rest des Codes ausführen. Dadurch wird „:=" der typischere Zuweisungsoperator („<-") zugewiesen.
demographics_set[, sex_br := (sex == "F")*1]
Hier ist ein weiteres Beispiel, bei dem es unten eine Zeilenunterteilung gibt. Weisen Sie für die Zeilen, in denen „demo_ethn_v2“ gleich „1“ ist, der Spalte „ethnicity_hisp“ den Wert 1 zu.
demographics_set[demo_ethn_v2 == "1", ethnicity_hisp := 1]
Die Funktion is.na() wählt die Zeilen aus, die für die Spalte innerhalb der Klammern nicht NA sind.
Die Funktionen as.character() und as.numeric() konvertieren die Spalte wie angegeben entweder in ein Zeichen oder eine Zahl. Manchmal müssen Sie zuerst in Zeichen und dann in Zahlen konvertieren, daher die verschachtelten Funktionen, die im Code vorkommen.
Nach all dieser Datenbereinigung die folgende Zeile Löscht Faktorstufen, die aufgrund der Unterteilung des Datenrahmens nicht mehr verwendet werden.
demographics_set = droplevels(demographics_set)
Dennoch stimme ich mit den anderen darin überein, dass es für Sie wahrscheinlich einfacher wäre, diesen R-Code in ein JMP-Skript einzubetten und die R-Funktionen zum Ausführen des R-Codes zu verwenden. Sehen Sie sich den Skriptindex in JMP im Menü „Hilfe“ an, um die R-Funktionen zu finden. Sie benötigen wahrscheinlich R Init(), um die Verbindung zu R zu initialisieren, R Send(), um jede Datei oder Variable zu umschließen, die Sie in den R-Code eingeben möchten, R Submit(), um Ihren R-Code zu umschließen, R Get( ), um die Ausgabe von R zurück in JMP abzurufen (oder R Get Graphics(), wenn Sie ein grafisches Objekt abrufen), und R Term(), um die R-Schnittstelle zu beenden. Klingt komplizierter als es ist, ist aber wahrscheinlich immer noch einfacher, als den gesamten R-Code als JSL (JMP-Skriptsprache) neu zu schreiben. Der Skriptindex enthält einige nette Beispiele, die Ihnen weiterhelfen.
Betreff: Konvertieren von R in ein JMP-Skript@GraphicalScore9 , Vielen Dank, dass Sie Ihre Fragen hier konkretisiert haben.Das könnte allgemein hilfreich sein: Der JMP-zu-R-Add-In-Builder – JMP-Benutzer-Community .
@txnelson , Können Sie dabei helfen?Die skriptfähige Logik im Formeleditor ist in JMP für Nicht-Skripter einfach zu verstehen. Der Benutzer scheint hier eine grundlegende Interpretation der Logik zum Erstellen dieser neuen Variablennamen aus dem R-Quellcode zu benötigen. Von dort aus Wenn sie ein JMP-Benutzer sind, der mit Spaltenformeln vertraut ist (im Skripteditor oder im Formeleditor), sollte die Implementierung in der JMP-Datentabellenumgebung ziemlich einfach sein.
Betreff: Konvertieren von R in ein JMP-SkriptHallo zusammen, ich versuche, meine Anfrage etwas spezifischer und JMP-fokussierter zu gestalten. Kann mir jemand anhand des folgenden aus den begleitenden Daten generierten R-Codes die Logik erklären, die R bei der Erstellung dieser neuen Variablen aus den Rohdaten macht? Ich beabsichtige, diese neuen Variablen mithilfe von Spaltenformeln in den Rohdaten in JMP zu reproduzieren.Im Einzelnen diese Zeile 23 bis Zeile 114 des beigefügten R-Codes: abcd_discrimination/demographics_baseline_clean.R bei main · barzilab1/abcd_discrimination · GitHub
########### sex
#convert the NIH sex at birth (equal to demo_sex_v2)
demographics_set[, sex_br := (sex == "F")*1]
demographics_set[,demo_sex_v2 := NULL]
########### age
#interview age will be used instead of age
demographics_set[,demo_brthdat_v2:=NULL]
demographics_set[, age := as.numeric(as.character(interview_age))]
########### gender
demographics_set[,gender := as.numeric(as.character(demo_gender_id_v2))]
demographics_set[(gender %in% c(777,999)) ,gender := NA]
demographics_set[, gender:= gender-1]
demographics_set[, demo_gender_id_v2:= NULL]
########### ethnicity
demographics_set[demo_ethn_v2 == "1", ethnicity_hisp := 1]
demographics_set[demo_ethn_v2 == "2", ethnicity_hisp := 0]
demographics_set[(demo_ethn_v2 %in% c(777,999)), ethnicity_hisp:= NA]
demographics_set = demographics_set[, demo_ethn_v2 := NULL]
########### child race
#"refuse to answer" and "dont know" will be 0
# White
demographics_set[, race_white:= (demo_race_a_p___10 == "1")*1 ]
# Black
demographics_set[, race_black:= (demo_race_a_p___11 == "1")*1 ]
# Asian
demographics_set[, race_asian:= 0]
demographics_set[ (demo_race_a_p___18 == "1" | demo_race_a_p___19 == "1" | demo_race_a_p___20 == "1" |
demo_race_a_p___21 == "1" | demo_race_a_p___22 == "1" | demo_race_a_p___23 == "1" |
demo_race_a_p___24 =="1"), race_asian:= 1 ]
# AIAN: American Indian and Alaska Native
demographics_set[, race_aian:= 0]
demographics_set[ (demo_race_a_p___12 == "1" | demo_race_a_p___13 == "1"), race_aian:=1 ]
#NHPI: Native Hawaiian and Other Pacific
demographics_set[, race_nhpi:= 0]
demographics_set[ demo_race_a_p___14 == "1" | demo_race_a_p___15 == "1" | demo_race_a_p___16 == "1" |
demo_race_a_p___17 == "1", race_nhpi:= 1 ]
# Other
demographics_set[, race_other:= 0 ]
demographics_set[ demo_race_a_p___25 == "1", race_other:= 1 ]
# Mixed
demographics_set[, race_mixed:= (race_white + race_black + race_asian + race_aian + race_nhpi + race_other)]
demographics_set[, table(race_mixed, useNA = "if")]
demographics_set[ race_mixed <= 1, race_mixed:= 0]
demographics_set[ race_mixed > 1, race_mixed:= 1]
demographics_set[, table(race_mixed, useNA = "if")]
demographics_set[,colnames(demographics_set)[(grepl("^demo_race_a_p___",colnames(demographics_set)))] := NULL]
########### child's country of birth
demographics_set[, born_in_usa := 0]
demographics_set[demo_origin_v2 %in% c(777,999), born_in_usa := NA]
demographics_set[demo_origin_v2 == 189, born_in_usa := 1]
########### parents education
demographics_set[(demo_prnt_ed_v2 %in% c(777,999)), demo_prnt_ed_v2:= NA]
demographics_set[(demo_prtnr_ed_v2 %in% c(777,999)), demo_prtnr_ed_v2:= NA]
demographics_set[, parents_avg_edu:= (as.numeric(as.character(demo_prnt_ed_v2)) + as.numeric(as.character(demo_prtnr_ed_v2)))/2]
#in case of edu is missing in one of the parents, it will be the edu the of other parent
demographics_set[is.na(parents_avg_edu), parents_avg_edu:= as.numeric(as.character(demo_prnt_ed_v2))]
demographics_set[is.na(parents_avg_edu), parents_avg_edu:= as.numeric(as.character(demo_prtnr_ed_v2))]
########### family income
demographics_set[,household_income:= demo_comb_income_v2]
demographics_set[( household_income %in% c(777,999)) ,household_income:= NA]
demographics_set[,demo_comb_income_v2 := NULL]
########### parents married status
demographics_set[demo_prnt_marital_v2 == 777 , demo_prnt_marital_v2:= NA]
demographics_set[,separated_or_divorced := 0]
demographics_set[(demo_prnt_marital_v2 %in% c(3,4)), separated_or_divorced := 1]
demographics_set[,parents_married := 0]
demographics_set[(demo_prnt_marital_v2 == 1), parents_married := 1]
demographics_set = droplevels(demographics_set)
Betreff: Konvertieren von R in ein JMP-SkriptMöglicherweise ist es einfacher, JMP als Frontend zu verwenden und das vorhandene R-Programm über JSL (JMP Script Language) aufzurufen.