Hola.
Una explicación sobre como cargar datos en R a partir de hojas de cálculo. Hay más formas, pero yo suelo usar esta.
He creado en calc una hoja de cálculo con 5 columnas llamada dades.ods, tiene dos columnas llamadas factor1 y factor2 y tres columnas con los datos.
Leamos esto con el R:
Se puede leer directamente de .ods o .xls usando read.dbf, pero Nunca sabemos de donde van a venir los datos así que lo explico para leerlos desde un archivo de texto .csv que se puede crear desde cualquier plataforma, o casi.
Pasamos dades.ods a .csv mediante Guardar como (también se puede hacer con MSExcel)
Antes de leerlo con R miradlo con un editor de texto para ver que la separación por campos está bien hecha, el texto está entre comillas, los decimales con puntos, etc. Si no hacemos bien esto último y los decimales son comas, el R pensará que ahí hay un cambio de campo y nos haremos un lío.
Una vez comprobado esto leemos el archivo dades.csv desde R:
dades->read.table("dades.csv",sep=",",header=T)
le decimos que bajo el nombre dades nos ponga el contenido de dades.csv, que los campos estan separados por comas (sep=»,») y que nuestro archivo tenía cabeceras (header=T). Al crear el .csv podemos especificar esto.
Como veis no he especificado ruta, supongo que dades.csv está en el directorio de trabajo.
Para ver el contenido:
> summary(dades) factor1 factor2 datos1 datos2 datos3 a:20 Min. :1.00 Min. : 0.32 Min. : 12.17 Min. : 1.00 b:20 1st Qu.:1.75 1st Qu.:25.35 1st Qu.:263.51 1st Qu.:10.75 Median :2.50 Median :54.05 Median :476.13 Median :30.00 Mean :2.50 Mean :51.88 Mean :501.87 Mean :30.00 3rd Qu.:3.25 3rd Qu.:76.39 3rd Qu.:725.57 3rd Qu.:49.25 Max. :4.00 Max. :99.96 Max. :996.24 Max. :59.00
o
> str(dades) 'data.frame': 40 obs. of 5 variables: $ factor1: Factor w/ 2 levels "a","b": 1 1 1 1 1 1 1 1 1 1 ... $ factor2: int 1 1 1 1 1 2 2 2 2 2 ... $ datos1 : num 62.04 0.82 73.25 60.96 52.31 ... $ datos2 : num 504 996 725 259 338 ... $ datos3 : int 1 2 3 4 5 6 7 8 9 10 ...
Nos ha creado un dataframe llamado dades.
Ahora hay que decirle qué columnas son factores y cuáles son datos, ya que los que eran texto (factor1) sí que los ha reconocido como factores, pero los que eran números (factor2) nos los ha reconocido como número y en el summary nos ha hecho la estadística.
dades$factor2<-as.factor(dades$factor2)
Le decimos que cree un factor nuevo llamado dades$factor2 que será el mismo dades$factor2 pero convertido en factor.
Si hacemos ahora el summary:
> summary(dades) factor1 factor2 datos1 datos2 datos3 a:20 1:10 Min. : 0.32 Min. : 12.17 Min. : 1.00 b:20 2:10 1st Qu.:25.35 1st Qu.:263.51 1st Qu.:10.75 3:10 Median :54.05 Median :476.13 Median :30.00 4:10 Mean :51.88 Mean :501.87 Mean :30.00 3rd Qu.:76.39 3rd Qu.:725.57 3rd Qu.:49.25 Max. :99.96 Max. :996.24 Max. :59.00
tenemos tres variables datos 1-3 y dos factores: factor1 con dos niveles a y b y factor2 con 4 niveles 1, 2, 3, 4.
Saludos.
Me ha sido de mucha ayuda como leer datos desde excel,
Gracias
Hola.
Muchas gracias por el comentario.
También es de mucha ayuda.
Saludos.
Si esta bien pero esta base esta completa. ¿que sucede cuando hay datos faltantes y la base esta incompleta?
Hola cali.
Si la base de datos esta incompleta (entiendo que te refieres a que para algún caso no conocemos el valor de la variable) debemos sustituir en la hoja de calculo nuestro valor para los datos faltantes por NA. De este modo, al importar los datos R entenderá que es un valor faltante.
Después, al hacer el summary, nos indicará el número de NA que hay en esa categoría.
Espero haberte ayudado, si no es así no dudes en volver a comentar.
Saludos.
En el caso en que los decimales de los números esten separados por coma (ej: 666,66) y no por puntos (ej: 999.99), se puede introducir dec=»,» este hará que reconozca las comas.
Quedaría de la siguiente forma, para el mismo ejemplo:
dades->read.table(«dades.csv»,sep=»,»,header=T, dec =»,»)
Hola Paul.
Muchas gracias por el comentario, me va a ser muy útil.
saludos.
como hago para apendiar dos o mas bases de datos que estan hechas en SAS??alguien sabe?
Hola,
Eso digo yo ¿Alguien lo sabe? Por que yo no se ni de que color es el SAS.
Saludos.
Para unir dos tablas en SAS el código es el siguiente:
data tabla_union;
set tabla1 tabla2;
run;
Más info:
http//sasybi.blogspot.com
Saludos
Corrijanme si me equivoco, pero la flecha de asignación no esta al revés?
dades->read.table(“dades.csv”,sep=”,”,header=T, dec =”,”)
deberia ser:
dades <- read.table(“dades.csv”,sep=”,”,header=T, dec =”,”)