Cómo enviar fechas como caracteres de JMP a RTodos,
Estoy tratando de aprovechar algunas funciones financieras que existen en R. Las funciones requieren que las fechas se pasen como caracteres. ¿Alguien me puede guiar sobre cómo pasar las fechas en un formato aceptable para R de JMP?
@ih ( Mención especial)
# 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)])})Me gustaría hacer exactamente lo mismo, excepto que las entradas deberán pasar de JMP a R.
El flujo de caja (CF1) es un vector directo y no tiene problemas para pasar, sin embargo, las fechas son la parte difícil.
La función XNPV en R si no tengo las fechas debe estar formateada como el carácter que se muestra arriba.
Aunque formateo las fechas como caracteres en JMP, pero cuando las paso a RI no creo que se estén pasando correctamente.
R Send(DatesInJMP)
d1 <- as.Date(DatesInJMP)
R Get(d1)
- Esto produce un error - "as.Date.default (DatesInJMP)" - no sé cómo convertir a la clase "Fecha"
Re: Cómo enviar fechas como caracteres de JMP a RDe? Como.Fecha en R:
los <FONT face="Courier New"> como.fecha </FONT> Los métodos aceptan cadenas de caracteres, factores, lógicos. <FONT face="Courier New"> N / A </FONT> y objetos de clases <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> y <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 se muestra como una lista de cadenas en lugar de un vector de cadena. El siguiente código lo verifica y luego corrige el problema convirtiéndolo primero en un vector de caracteres.
Tenga en cuenta que también puede enviar fechas y horas como números, solo debe tener en cuenta la falta de una zona horaria en JMP al importar el valor como UTC. Entonces podría compensarlo a la hora local si es necesario; Hago ese tipo de cosas con lubricante. O puedes hacer ese desplazamiento en JMP antes de enviarlo a R.
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();
Editado o solucionado el formato desordenado al intentar cambiar el código en esta ventana.
Re: Cómo enviar fechas como caracteres de JMP a R @txnelson ,
El segundo fragmento de código que he compartido, es decir, está en JSL y no en R.
R Send(DatesInJMP)
d1 <- as.Date(DatesInJMP)
R Get(d1)
Este es mi intento de mostrar las fechas que se pasan de JMP a R. Cuando invoco R desde JMP, no se abre una instancia de R, por lo que no estoy seguro de cómo probar lo que R está viendo aparte de recuperarlo en JMP como lo intenté anteriormente. Cada argumento se pasa por separado de JMP a R como se muestra a continuación:
# JSL CODE
R Send(DatesInJMP);
R Send(CashFlow);
R Submit("
d1 <- as.Date(DatesInJMP)
"
);
R Get(d1);
Re: Cómo enviar fechas como caracteres de JMP a R¿Ha mostrado en R la lista que pasó para que pueda ver lo que R recibió? ¿Puede modificar su código R original a una lista separada y luego pasarlo como está intentando hacer en su versión modificada del código R, para JMP?
Re: Cómo enviar fechas como caracteres de JMP a RHola jim
Formateé las fechas como caracteres antes de pasar a R. Se formatean como una lista de fechas de caracteres.
La fórmula que utilicé para formatearlos son:
(Char (Formato (: PeriodEnding, "y / m / d")))Re: Cómo enviar fechas como caracteres de JMP a RUday,
Las fechas en JMP son numéricas. La lista que necesita en su código R es una lista de cadenas. Debe usar la función Format () para crear una nueva lista en JMP donde haya traducido los valores numéricos de la lista, a los valores de caracteres en la cadena, antes de pasarlos a R