Buenos Días, en esta ocasión les escribo para tratar de solucionar una duda que puede resultar muy sencilla, pero de la que no encuentro solucion. necesito hallar la descomposición en valores singulares; tengo la siguiente matriz de datos: DPTO PERSONAS HACINA INTERNET COMPU TV_SUCRIPC Antioquia 4962749,1 1,61 0,39 0,47 0,77 Atlántico 2191360,7 1,97 0,3 0,31 0,42 Bogotá D.C. 7499198 1,67 0,42 0,51 0,76 Bolívar 2051781,2 2,41 0,16 0,2 0,61 Boyacá 561366,42 1,74 0,14 0,26 0,3 Caldas 657222,6 1,52 0,35 0,38 0,82 Caquetá 353930,02 1,72 0,16 0,29 0,71 Cauca 443005,43 1,58 0,15 0,25 0,36 Cesar 354942 1,99 0,26 0,31 0,44 Córdoba 726917,53 1,99 0,19 0,24 0,65 Cundinamarca 1397105,6 1,85 0,21 0,29 0,85 Chocó 273373,22 1,73 0,19 0,27 0,72 Huila 765873,68 1,62 0,27 0,39 0,76 La Guajira 419212,53 2,15 0,17 0,18 0,48 Magdalena 886305,01 2,27 0,18 0,24 0,49 Meta 593343,56 1,7 0,21 0,29 0,52 Nariño 805504,84 1,74 0,21 0,29 0,6 Norte de Santander 1546668,2 1,76 0,25 0,34 0,7 Quindio 283271 1,55 0,38 0,43 0,75 Risaralda 719637,45 1,54 0,36 0,41 0,82 Santander 1491647,2 1,63 0,3 0,35 0,69 Sucre 624880,98 2,09 0,14 0,18 0,77 Tolima 826198,14 1,66 0,28 0,36 0,73 Valle del Cauca 3921868,5 1,67 0,29 0,37 0,76 Debo hacer la descomposición, pero no se como hacerlo, a pesar de no ser una matriz muy grande, en R no me permite hacer el producto (t(A))%*%A ni A*((t(A)) tendrá algo que ver el hecho de que llamo la matriz, con la funcion A <- read.table("clipboard", dec=",", header=1) es decir, el hecho de traerla de esta forma, evita que yo pueda hacer este producto de matrices? Ultima pregunta, cuando completo el resultado, como debo usar la funcion, "write.table" o "write.csv" para guardar el resultado en una tabla de excel? muchas gracias! -- ALEXANDER U SANTO TOMAS - ESTADÍSTICA [[alternative HTML version deleted]]
Hola, ¿qué tal? Lo que nos pasas no es una matriz --que es lo que necesitas para realizar operaciones de álgebra lineal-- sino un data.frame. Así que tendrás que: 1) Seleccionar solo las columnas numéricas de tu interés (¿con subset?). 2) Utilizar as.matrix para convertir el data.frame resultante en una matriz. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 17 de septiembre de 2013 14:17, Lex B <bernalm.alexander en gmail.com> escribió:> Buenos Días, en esta ocasión les escribo para tratar de solucionar una duda > que puede resultar muy sencilla, pero de la que no encuentro solucion. > > necesito hallar la descomposición en valores singulares; tengo la siguiente > matriz de datos: > > DPTO PERSONAS HACINA INTERNET COMPU TV_SUCRIPC Antioquia 4962749,1 1,61 > 0,39 0,47 0,77 Atlántico 2191360,7 1,97 0,3 0,31 0,42 Bogotá D.C. 7499198 > 1,67 0,42 0,51 0,76 Bolívar 2051781,2 2,41 0,16 0,2 0,61 Boyacá 561366,42 > 1,74 0,14 0,26 0,3 Caldas 657222,6 1,52 0,35 0,38 0,82 Caquetá 353930,02 > 1,72 0,16 0,29 0,71 Cauca 443005,43 1,58 0,15 0,25 0,36 Cesar 354942 1,99 > 0,26 0,31 0,44 Córdoba 726917,53 1,99 0,19 0,24 0,65 Cundinamarca > 1397105,6 1,85 0,21 0,29 0,85 Chocó 273373,22 1,73 0,19 0,27 0,72 Huila > 765873,68 1,62 0,27 0,39 0,76 La Guajira 419212,53 2,15 0,17 0,18 0,48 > Magdalena 886305,01 2,27 0,18 0,24 0,49 Meta 593343,56 1,7 0,21 0,29 0,52 > Nariño 805504,84 1,74 0,21 0,29 0,6 Norte de Santander 1546668,2 1,76 0,25 > 0,34 0,7 Quindio 283271 1,55 0,38 0,43 0,75 Risaralda 719637,45 1,54 0,36 > 0,41 0,82 Santander 1491647,2 1,63 0,3 0,35 0,69 Sucre 624880,98 2,09 0,14 > 0,18 0,77 Tolima 826198,14 1,66 0,28 0,36 0,73 Valle del Cauca 3921868,5 > 1,67 0,29 0,37 0,76 > > Debo hacer la descomposición, pero no se como hacerlo, a pesar de no ser > una matriz muy grande, en R no me permite hacer el producto (t(A))%*%A ni > A*((t(A)) > > tendrá algo que ver el hecho de que llamo la matriz, con la funcion > A <- read.table("clipboard", dec=",", header=1) > es decir, el hecho de traerla de esta forma, evita que yo pueda hacer este > producto de matrices? > > Ultima pregunta, cuando completo el resultado, como debo usar la funcion, > "write.table" o "write.csv" para guardar el resultado en una tabla de excel? > > muchas gracias! > > > > > -- > > ALEXANDER > U SANTO TOMAS - ESTADÍSTICA > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Hola, Y sobre la parte de cómo has de grabar la tabla para poder leerla en Excel. - La función general a usar es "write.table()", en la que puedes definir (entre otras cosas) el tipo de separador de campos. - Mientras que una función de la misma familia write.csv() y write.csv0() permiten escribir el data.frame en un fichero ya con formato CSV dando tan sólo el nombre del fichero. La diferencia entre estas dos funciones, es sobre si quieres que la celda A1 cuando importas el fichero en Excel esté o no vacía (la cabecera tenga un hueco inicial o no)... De todas formas, cuando quieras abrir estos ficheros en Excel, tendrás que pasar por un asistente de importación al no ser un fichero propiamente de Excel. Si quieres que el fichero sea propiamente de Excel (.xls o .xlsx), hay librerías que lo permiten: WriteXLS, XLConnect, xlsx, etc... Saludos, Carlos Ortega www.qualityexcellence.es El 17 de septiembre de 2013 14:17, Lex B <bernalm.alexander@gmail.com>escribió:> Buenos Días, en esta ocasión les escribo para tratar de solucionar una duda > que puede resultar muy sencilla, pero de la que no encuentro solucion. > > necesito hallar la descomposición en valores singulares; tengo la siguiente > matriz de datos: > > DPTO PERSONAS HACINA INTERNET COMPU TV_SUCRIPC Antioquia 4962749,1 > 1,61 > 0,39 0,47 0,77 Atlántico 2191360,7 1,97 0,3 0,31 0,42 Bogotá D.C. 7499198 > 1,67 0,42 0,51 0,76 Bolívar 2051781,2 2,41 0,16 0,2 0,61 Boyacá 561366,42 > 1,74 0,14 0,26 0,3 Caldas 657222,6 1,52 0,35 0,38 0,82 Caquetá 353930,02 > 1,72 0,16 0,29 0,71 Cauca 443005,43 1,58 0,15 0,25 0,36 Cesar 354942 1,99 > 0,26 0,31 0,44 Córdoba 726917,53 1,99 0,19 0,24 0,65 Cundinamarca > 1397105,6 1,85 0,21 0,29 0,85 Chocó 273373,22 1,73 0,19 0,27 0,72 Huila > 765873,68 1,62 0,27 0,39 0,76 La Guajira 419212,53 2,15 0,17 0,18 0,48 > Magdalena 886305,01 2,27 0,18 0,24 0,49 Meta 593343,56 1,7 0,21 0,29 0,52 > Nariño 805504,84 1,74 0,21 0,29 0,6 Norte de Santander 1546668,2 1,76 0,25 > 0,34 0,7 Quindio 283271 1,55 0,38 0,43 0,75 Risaralda 719637,45 1,54 0,36 > 0,41 0,82 Santander 1491647,2 1,63 0,3 0,35 0,69 Sucre 624880,98 2,09 > 0,14 > 0,18 0,77 Tolima 826198,14 1,66 0,28 0,36 0,73 Valle del Cauca 3921868,5 > 1,67 0,29 0,37 0,76 > > Debo hacer la descomposición, pero no se como hacerlo, a pesar de no ser > una matriz muy grande, en R no me permite hacer el producto (t(A))%*%A ni > A*((t(A)) > > tendrá algo que ver el hecho de que llamo la matriz, con la funcion > A <- read.table("clipboard", dec=",", header=1) > es decir, el hecho de traerla de esta forma, evita que yo pueda hacer este > producto de matrices? > > Ultima pregunta, cuando completo el resultado, como debo usar la funcion, > "write.table" o "write.csv" para guardar el resultado en una tabla de > excel? > > muchas gracias! > > > > > -- > > ALEXANDER > U SANTO TOMAS - ESTADÍSTICA > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]