Herramientas de usuario

Herramientas del sitio


math_langs:r

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
math_langs:r [2011/05/22 11:18]
alfred
math_langs:r [2020/05/09 09:25] (actual)
Línea 2: Línea 2:
 Es un lenguaje y entorno de programación para análisis estadístico ​ y gráfico. \\  Es un lenguaje y entorno de programación para análisis estadístico ​ y gráfico. \\ 
 Existe un IDE para trabajar con el lenguaje denominado [[http://​www.rstudio.org|RStudio]]. Existe un IDE para trabajar con el lenguaje denominado [[http://​www.rstudio.org|RStudio]].
 +Para instalarlo en Ubuntu añadiremos el paquete ''​r-base''​.
  
 ===== Básico ===== ===== Básico =====
 +
 +
  
  
Línea 19: Línea 21:
 Mostrar por pantalla: Mostrar por pantalla:
   * ''​print(variable)'':​ Muestra por pantalla un texto.   * ''​print(variable)'':​ Muestra por pantalla un texto.
-  * ''​sprintf("​formato",​ variables)'': ​Muestra por pantalla ​un texto formateado.+  * ''​sprintf("​formato",​ variables)'': ​Devuelve, **no lo muestra**, ​un string ​formateado.
  
 Strings: Strings:
   * ''​s = paste(s, "​Delta",​ sep=""​)'':​ Concatena al string ''​s''​ la palabra ''​Delta''​ con ninguna separación.   * ''​s = paste(s, "​Delta",​ sep=""​)'':​ Concatena al string ''​s''​ la palabra ''​Delta''​ con ninguna separación.
 +Listas:
 +  * ''​a = c(2, 3, 5)'':​ creará una lista de tres números. ​
 +  * ''​a = c(c(2, 3, 5), 3)'':​ creará una lista de cuatro números.
  
 Trabajo con paquetes: Trabajo con paquetes:
Línea 44: Línea 49:
 === Operadores === === Operadores ===
   * ''​ifelse(a>​0,​a,​0)''​ : Operador ternario.   * ''​ifelse(a>​0,​a,​0)''​ : Operador ternario.
 +
  
  
Línea 99: Línea 105:
 </​code>​ </​code>​
 Para conocer el número de filas y de columnas de un conjunto de datos utilizaremos la funcion ''​nrow''​ y ''​ncol''​ respectivamente. \\  Para conocer el número de filas y de columnas de un conjunto de datos utilizaremos la funcion ''​nrow''​ y ''​ncol''​ respectivamente. \\ 
-La función ''​rbind''​ te permite concatenar dos conjuntos de datos, el segundo después del primero.+La función ''​rbind''​ te permite concatenar dos conjuntos de datos, el segundo después del primero. \\  
 +Podemos recoger un subconjunto si, por ejemplo, tenemos en una variable ''​idxs''​ los indices así: ''​sub <- conjunto[idxs]''​. O el subconjunto negativo restante ''​sub <- conjunto[-idxs]''​.
 === Vectores y matrices === === Vectores y matrices ===
 Creación de una matriz: Creación de una matriz:
Línea 137: Línea 144:
 Mediante ''​attach(var)''​ haremos accesibles (sin necesidad de acceder por dataframe$columna sino como variables) las columnas del data frame. \\  Mediante ''​attach(var)''​ haremos accesibles (sin necesidad de acceder por dataframe$columna sino como variables) las columnas del data frame. \\ 
 Para eliminar una columna de un data frame: ''​datos$beta2=NULL'' ​ \\  Para eliminar una columna de un data frame: ''​datos$beta2=NULL'' ​ \\ 
 +
  
  
Línea 166: Línea 174:
 p.xk <- function(vec,​fac){nk <- as.vector(table(fac));​ n <- sum(nk); xk <- tapply(vec,​fac,​mean);​ p.xk <- function(vec,​fac){nk <- as.vector(table(fac));​ n <- sum(nk); xk <- tapply(vec,​fac,​mean);​
            txk <- (xk-mean(vec))/​(sd(vec)*sqrt((n-nk)/​(n*nk)));​ pxk <- pt(txk,​n-1,​lower.tail=F)}            txk <- (xk-mean(vec))/​(sd(vec)*sqrt((n-nk)/​(n*nk)));​ pxk <- pt(txk,​n-1,​lower.tail=F)}
 +</​code>​
 +Si en una función queremos devolver datos complejos haremos lo siguiente, esto sería: ''​cv = cvalidation(datos);​ cv$learn;''​
 +<​code>​
 +cvalidation = function (dframe) {
 +  nregs = nrow(dframe);​
 +  nind_group = nregs/10;
 +  ilearn = sample(1:​nregs,​ nind_group * 9);
 +  dlearn <- dframe[ilearn,​];​
 +  dtest <- dframe[-ilearn,​];​
 +  list(learn = dlearn, test = dtest);
 +}
 </​code>​ </​code>​
  
Línea 213: Línea 232:
   * ''​plot(x)'':​ Muestra en un gráfico de puntos los elentos de x. Podríamos hacer también ''​plot(x,​y)'',​ que sería poner x en función de y.   * ''​plot(x)'':​ Muestra en un gráfico de puntos los elentos de x. Podríamos hacer también ''​plot(x,​y)'',​ que sería poner x en función de y.
   * ''​hist(x)'':​ Muestra en un histograma la forma de x.   * ''​hist(x)'':​ Muestra en un histograma la forma de x.
 +
  
 ==== Como... ==== ==== Como... ====
   * **Hacer plots 3d**: los encontrarás en el paquete ''​rgl''​. Contiene funciones como ''​plot3d''​...   * **Hacer plots 3d**: los encontrarás en el paquete ''​rgl''​. Contiene funciones como ''​plot3d''​...
 +
 +===== Data Mining & Machine Learning =====
 +<​code>​
 +data(HouseVotes84,​ package="​mlbench"​)
 +model <- naiveBayes(Class ~ ., data = HouseVotes84) # Entrenamiento,​ predecir Class
 +pred <- predict(model,​ HouseVotes84[,​-1]) ​          # Prediccion (sobre los mismos datos)
 +table(pred, HouseVotes84$Class) ​                    # Tabla de confusión \ contingencia
 +</​code>​
 +
 +==== Naïve Bayes ====
  
 ===== Avanzado ===== ===== Avanzado =====
Línea 232: Línea 262:
  
 ===== Notas ===== ===== Notas =====
 +
 ==== Como... ==== ==== Como... ====
 === Crear una tabla === === Crear una tabla ===
Línea 240: Línea 271:
 colnames(pvalk.con) <- row.names(pvalcon) colnames(pvalk.con) <- row.names(pvalcon)
 </​code>​ </​code>​
 +=== Limpiar el workspace ===
 +<​code>​
 +rm(list=ls())
 +</​code>​
 +
 ==== Notas ==== ==== Notas ====
   * {{math_langs:​matlabr.pdf|Comparación de MATLAB y R}}, sacada de [[http://​www.math.umaine.edu/​~hiebeler/​comp/​matlabR.html]].   * {{math_langs:​matlabr.pdf|Comparación de MATLAB y R}}, sacada de [[http://​www.math.umaine.edu/​~hiebeler/​comp/​matlabR.html]].
math_langs/r.1306063112.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)