So senden Sie Datumsangaben als Zeichen von JMP an RAlles,
Ich versuche, einige Finanzierungsfunktionen zu nutzen, die in R existieren. Für die Funktionen müssen Datumsangaben als Zeichen übergeben werden. Kann mir jemand sagen, wie ich die Daten in einem für JMP akzeptablen Format weitergeben kann.
@ich h ( Besondere Erwähnung)
# Working R Code
library(tvm)
CF1 <- c(-100,20,40,25,8,15)
d1 <- as.Date(c("2016-01-01","2016-04-01","2016-10-01","2017-02-01","2017-03-01","2017-06-01"))
Res <- vector()
Res <- sapply(1:length(d1), function(i) {xnpv(i,CF1[i:length(CF1)],d1[i:length(d1)])})Ich möchte genau das Gleiche tun - außer, dass die Eingaben von JMP an R übergeben werden müssen.
Der Cashflow (CF1) ist ein gerader Vektor und hat kein Problem, aber die Daten sind der knifflige Teil.
XNPV-Funktion in R, wenn Datumsangaben nicht wie oben gezeigt formatiert werden müssen.
Ich formatiere zwar die Datumsangaben als Zeichen in JMP, aber wenn ich sie an RI weitergebe, glaube ich nicht, dass sie korrekt übergeben werden.
R Send(DatesInJMP)
d1 <- as.Date(DatesInJMP)
R Get(d1)
- Dies löst einen Fehler aus - "as.Date.default (DatesInJMP)" - weiß nicht, wie er in die Klasse "Date" konvertiert werden soll
Re: So senden Sie Datumsangaben als Zeichen von JMP an RAb dem Datum in R:
Das <FONT face="Courier New"> als.Datum </FONT> Methoden akzeptieren Zeichenfolgen, Faktoren, logisch <FONT face="Courier New"> N / A </FONT> und Gegenstände des Unterrichts <FONT face="Courier New"> " </FONT><A href="http://127.0.0.1:46214/help/library/base/help/POSIXlt" target="_blank" rel="nofollow noopener noreferrer"><FONT face="Courier New"> POSIXlt </FONT></A><FONT face="Courier New"> " </FONT> und <FONT face="Courier New"> " </FONT><A href="http://127.0.0.1:46214/help/library/base/help/POSIXct" target="_blank" rel="nofollow noopener noreferrer"><FONT face="Courier New"> POSIXct </FONT></A><FONT face="Courier New"> " </FONT>
DatesInJMP wird als Liste von Zeichenfolgen anstelle eines Zeichenfolgenvektors angezeigt. Der folgende Code überprüft dies und korrigiert das Problem, indem es zuerst in einen Zeichenvektor umgewandelt wird.
Beachten Sie, dass Sie Datum und Uhrzeit auch als Zahlen senden können. Sie müssen nur das Fehlen einer Zeitzone in JMP berücksichtigen, indem Sie den Wert als UTC importieren. Sie können es dann ggf. auf die Ortszeit verschieben. Ich mache so etwas mit Lubridat. Oder Sie können diesen Versatz in JMP ausführen, bevor Sie ihn an R senden.
Names default to here( 1 );
DatesInJMP = { "2017-01-01", "2017-01-02", "2017-01-03" };
R Init();
R Send( DatesInJMP );
R Submit( "str(DatesInJMP)");
R Submit( "dt <- as.Date(as.character(DatesInJMP))" );
Write("\!N"); //New line so log is easier to read
R Submit( "str(dt)");
Write("\!N");
//Send a number instead
JMPTime = num( Today() );
R Send( JMPTime );
R Submit( "Date_POSIX <- as.POSIXct( JMPTime, origin = '1904-01-01', tz = 'GMT')");
R Submit( "Date_ <- as.Date( Date_POSIX )");
R Submit( "str( Date_POSIX )");
R Submit( "str( Date_ )");
R Term();
Behebt die fehlerhafte Formatierung, indem versucht wird, Code in diesem Fenster zu ändern.
Re: So senden Sie Datumsangaben als Zeichen von JMP an R @txnelson .
Der zweite Code, den ich geteilt habe, ist in JSL und nicht in R.
R Send(DatesInJMP)
d1 <- as.Date(DatesInJMP)
R Get(d1)
Dies ist mein Versuch, die Datumsangaben anzuzeigen, die von JMP an R übergeben werden. Wenn ich R von JMP aus aufrufe, wird keine Instanz von R geöffnet. Daher bin ich nicht sicher, wie ich testen kann, was R anders sieht, als es in JMP abzurufen, wenn ich es oben versuche. Jedes Argument wird getrennt von JMP an R übergeben, wie unten gezeigt:
# JSL CODE
R Send(DatesInJMP);
R Send(CashFlow);
R Submit("
d1 <- as.Date(DatesInJMP)
"
);
R Get(d1);
Re: So senden Sie Datumsangaben als Zeichen von JMP an RHaben Sie die Liste, die Sie übergeben haben, in R angezeigt, damit Sie sehen können, was R erhalten hat? Können Sie Ihren ursprünglichen R-Code in eine separate Liste umwandeln und ihn dann so übergeben, wie Sie es in Ihrer modifizierten Version des R-Codes für JMP versucht haben?
Re: So senden Sie Datumsangaben als Zeichen von JMP an RHey Jim,
Ich habe die Datumsangaben als Zeichen formatiert, bevor sie an R weitergegeben wurden. Sie sind als Liste von Zeichendaten formatiert.
Die Formel, die ich zum Formatieren verwendete, lautet:
(Zeichen (Format (: PeriodEnding, "y / m / d"))))Re: So senden Sie Datumsangaben als Zeichen von JMP an RUday
Daten in JMP sind numerisch. Die Liste, die Sie in Ihrem R-Code benötigen, ist eine Liste von Zeichenfolgen. Sie müssen die Funktion Format () verwenden, um eine neue Liste in JMP zu erstellen, in der Sie die numerischen Werte in der Liste in Zeichenwerte in der Zeichenfolge übersetzt haben, bevor Sie sie an R übergeben