Me preguntaba si había alguna manera de forzar a una función a aceptar solo ciertos tipos de datos, sin tener que verificarlo dentro de la función; o, ¿esto no es posible porque la comprobación de tipos de R se realiza en tiempo de ejecución (a diferencia de los lenguajes de programación, como Java, donde se realiza la verificación de tipos durante la compilación)?Forzar tipos de datos específicos como argumentos de una función
Por ejemplo, en Java, tiene que especificar un tipo de datos:
class t2 {
public int addone (int n) {
return n+1;
}
}
En R, una función similar podría ser
addone <- function(n)
{
return(n+1)
}
pero si se suministra un vector, un vector será (obviamente) ser devuelto. Si sólo desea un solo número entero de ser aceptado, a continuación, es la única manera de hacer para tener una condición dentro de la función, a lo largo de las líneas de
addone <- function(n)
{
if(is.vector(n) && length(n)==1)
{
return(n+1)
} else
{
return ("You must enter a single integer")
}
}
Gracias,
Chris
Como punto de estilo de código, en el caso de que no tenga un número escalar, probablemente quiera lanzar un error (con 'stop' o' stopifnot') o dar una advertencia (con 'warning') en lugar que simplemente devolver una cadena. –