
30 Mar
2015
30 Mar
'15
15:25
Oi Éder, me desculpe pela demora em responder! Muito obrigada pela ajuda! Deu certo! Em 27 de março de 2015 00:16, Éder Comunello <comunello.eder@gmail.com> escreveu: > Boa noite, > > Acho que é possível simplificar com o uso de scale()... > > ### <code r> > x <- as.matrix(c(10.373173554, 6.125265914, 3.148949951, 2.722401273, > 2.045041946, > 1.498078581, 1.35012278, 1.33545711, 1.190051106, 0.999610112, > 0.850212256, 0.716720583, 0.600704889, 0.474433269, 0.431826856, > 0.388576986, 0.266709936, 0.176960029, 0.045935755, 0.02012691, > -0.003897135, -0.030136936, -0.074815367, -0.14541063, -0.294553778, > -0.453450244, -0.551343912, -0.710794973, -1.222537293, -1.273419528)) > > ### Similar ao utilizado no código inicial > raiz <- sqrt(sum(x^2)) > scale(x, center=FALSE, scale=raiz) > > ### Para valores entre 0 e 1 > scale(x-min(x), center=FALSE, scale=max(x)-min(x)) > ### </code> > > Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> > Dourados, MS - [22 16.5'S, 54 49'W] > > Em 26 de março de 2015 21:01, Michelle Bau Graczyk <mbgraczyk@gmail.com> > escreveu: > >> Boa noite, >> >> Eu estou normalizando autovetores de uma matriz e colocando eles em >> outra. Para isso eu montei o programa a seguir. A primeira forma, ele só >> calcula o ultimo elemento da coluna 4 da matriz, e da segunda forma os >> valores do resultado estão errados. >> Primeira forma: >> > a<-read.table("/Users/bau/Documents/Mestrado/teste/eigen1.txt", >> header=TRUE) >> >> > b<-as.matrix(a) >> > matriznorm<-matrix(0,30,4) >> > matriznorm[,1]<-b[,1]# só vou usar este valores do arquivo acima >> > show(matriznorm[,1]) >> [1] 10.373173554 6.125265914 3.148949951 2.722401273 2.045041946 >> 1.498078581 1.350122780 >> [8] 1.335457110 1.190051106 0.999610112 0.850212256 0.716720583 >> 0.600704889 0.474433269 >> [15] 0.431826856 0.388576986 0.266709936 0.176960029 0.045935755 >> 0.020126910 -0.003897135 >> [22] -0.030136936 -0.074815367 -0.145410630 -0.294553778 -0.453450244 >> -0.551343912 -0.710794973 >> [29] -1.222537293 -1.273419528 >> > for( i in 1:30){ >> + matriznorm[i,2]<-matriznorm[i,1]*matriznorm[i,1] >> + } >> > >> > somaQuadrados<-sum(matriznorm[,2]) >> > raiz<-sqrt(somaQuadrados) >> > matriznorm[,3]<-raiz >> > >> > for(j in i:30){ >> + matriznorm[j,4]<-matriznorm[j,1]/raiz >> + } >> > >> > >> write.table(matriznorm,"/Users/bau/Documents/Mestrado/teste/eigenValuesNorm1.txt") >> > show(matriznorm) >> [,1] [,2] [,3] [,4] >> [1,] 10.373173554 1.076027e+02 13.46876 0.00000000 >> [2,] 6.125265914 3.751888e+01 13.46876 0.00000000 >> [3,] 3.148949951 9.915886e+00 13.46876 0.00000000 >> [4,] 2.722401273 7.411469e+00 13.46876 0.00000000 >> [5,] 2.045041946 4.182197e+00 13.46876 0.00000000 >> [6,] 1.498078581 2.244239e+00 13.46876 0.00000000 >> [7,] 1.350122780 1.822832e+00 13.46876 0.00000000 >> [8,] 1.335457110 1.783446e+00 13.46876 0.00000000 >> [9,] 1.190051106 1.416222e+00 13.46876 0.00000000 >> [10,] 0.999610112 9.992204e-01 13.46876 0.00000000 >> [11,] 0.850212256 7.228609e-01 13.46876 0.00000000 >> [12,] 0.716720583 5.136884e-01 13.46876 0.00000000 >> [13,] 0.600704889 3.608464e-01 13.46876 0.00000000 >> [14,] 0.474433269 2.250869e-01 13.46876 0.00000000 >> [15,] 0.431826856 1.864744e-01 13.46876 0.00000000 >> [16,] 0.388576986 1.509921e-01 13.46876 0.00000000 >> [17,] 0.266709936 7.113419e-02 13.46876 0.00000000 >> [18,] 0.176960029 3.131485e-02 13.46876 0.00000000 >> [19,] 0.045935755 2.110094e-03 13.46876 0.00000000 >> [20,] 0.020126910 4.050925e-04 13.46876 0.00000000 >> [21,] -0.003897135 1.518766e-05 13.46876 0.00000000 >> [22,] -0.030136936 9.082349e-04 13.46876 0.00000000 >> [23,] -0.074815367 5.597339e-03 13.46876 0.00000000 >> [24,] -0.145410630 2.114425e-02 13.46876 0.00000000 >> [25,] -0.294553778 8.676193e-02 13.46876 0.00000000 >> [26,] -0.453450244 2.056171e-01 13.46876 0.00000000 >> [27,] -0.551343912 3.039801e-01 13.46876 0.00000000 >> [28,] -0.710794973 5.052295e-01 13.46876 0.00000000 >> [29,] -1.222537293 1.494597e+00 13.46876 0.00000000 >> [30,] -1.273419528 1.621597e+00 13.46876 -0.09454616 >> > >> Da segunda forma: >> > a<-read.table("/Users/bau/Documents/Mestrado/teste/eigen1.txt", >> header=TRUE) >> > b<-as.matrix(a) >> > matriznorm<-matrix(0,30,4) >> > matriznorm[,1]<-b[,1] >> > show(matriznorm[,1]) >> [1] 10.373173554 6.125265914 3.148949951 2.722401273 2.045041946 >> 1.498078581 1.350122780 >> [8] 1.335457110 1.190051106 0.999610112 0.850212256 0.716720583 >> 0.600704889 0.474433269 >> [15] 0.431826856 0.388576986 0.266709936 0.176960029 0.045935755 >> 0.020126910 -0.003897135 >> [22] -0.030136936 -0.074815367 -0.145410630 -0.294553778 -0.453450244 >> -0.551343912 -0.710794973 >> [29] -1.222537293 -1.273419528 >> > for( i in 1:30){ >> + matriznorm[i,2]<-matriznorm[i,1]*matriznorm[i,1] >> + >> + somaQuadrados<-sum(matriznorm[,2]) >> + raiz<-sqrt(somaQuadrados) >> + matriznorm[,3]<-raiz >> + >> + for(j in i:30){ >> + matriznorm[j,4]<-matriznorm[j,1]/raiz >> + } >> + } >> > >> write.table(matriznorm,"/Users/bau/Documents/Mestrado/teste/eigenValuesNorm1.txt") >> > show(matriznorm) >> [,1] [,2] [,3] [,4] >> [1,] 10.373173554 1.076027e+02 13.46876 1.0000000000 >> [2,] 6.125265914 3.751888e+01 13.46876 0.5084624670 >> [3,] 3.148949951 9.915886e+00 13.46876 0.2528991576 >> [4,] 2.722401273 7.411469e+00 13.46876 0.2135962692 >> [5,] 2.045041946 4.182197e+00 13.46876 0.1584251428 >> [6,] 1.498078581 2.244239e+00 13.46876 0.1152793173 >> [7,] 1.350122780 1.822832e+00 13.46876 0.1033376904 >> [8,] 1.335457110 1.783446e+00 13.46876 0.1016853664 >> [9,] 1.190051106 1.416222e+00 13.46876 0.0902440218 >> [10,] 0.999610112 9.992204e-01 13.46876 0.0755856426 >> [11,] 0.850212256 7.228609e-01 13.46876 0.0641564605 >> [12,] 0.716720583 5.136884e-01 13.46876 0.0540043425 >> [13,] 0.600704889 3.608464e-01 13.46876 0.0452163558 >> [14,] 0.474433269 2.250869e-01 13.46876 0.0356888678 >> [15,] 0.431826856 1.864744e-01 13.46876 0.0324667092 >> [16,] 0.388576986 1.509921e-01 13.46876 0.0292025272 >> [17,] 0.266709936 7.113419e-02 13.46876 0.0200398900 >> [18,] 0.176960029 3.131485e-02 13.46876 0.0132951406 >> [19,] 0.045935755 2.110094e-03 13.46876 0.0034511674 >> [20,] 0.020126910 4.050925e-04 13.46876 0.0015121392 >> [21,] -0.003897135 1.518766e-05 13.46876 -0.0002927926 >> [22,] -0.030136936 9.082349e-04 13.46876 -0.0022641887 >> [23,] -0.074815367 5.597339e-03 13.46876 -0.0056207917 >> [24,] -0.145410630 2.114425e-02 13.46876 -0.0109238800 >> [25,] -0.294553778 8.676193e-02 13.46876 -0.0221227473 >> [26,] -0.453450244 2.056171e-01 13.46876 -0.0340370871 >> [27,] -0.551343912 3.039801e-01 13.46876 -0.0413498303 >> [28,] -0.710794973 5.052295e-01 13.46876 -0.0532327969 >> [29,] -1.222537293 1.494597e+00 13.46876 -0.0911767942 >> [30,] -1.273419528 1.621597e+00 13.46876 -0.0945461625 >> >> Muito obrigada! >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >