Manuel Mendoza
2018-Jun-28 12:36 UTC
[R-es] suma del resultado de multiplicar fila x columna
Buenas tardes, tengo 2 dfs: Dieta de (108x11) y Abund de (591x108). Necesito multiplicar cada columna de la 1ª (108 elementos) por cada fila de la 2ª (108 elementos) y crear una nueva df con las sumas de esas multiplicaciones. He hecho esto, pero no sale y creo que está lejos de estar bien: Res <- matrix(nrow=nrow(Abund),ncol=ncol(Dieta)) Res <- as.data.frame(Res) for(i in 1:nrow(Dieta)){ for(j in 1:ncol(Abund)){ a<-as.vector(Dieta[,i]) b<-as.vector(Abund[j,]) sum <- sum(a * b) Res[i,j]<-sum } print(i) } -- Dr Manuel Mendoza Department of Biogeography and Global Change National Museum of Natural History (MNCN) Spanish Scientific Council (CSIC) C/ Serrano 115bis, 28006 MADRID Spain
Carlos J. Gil Bellosta
2018-Jun-28 12:46 UTC
[R-es] suma del resultado de multiplicar fila x columna
Eso que cuentas se llama multiplicación matricial. Usa %*%. El jue., 28 jun. 2018 14:37, Manuel Mendoza <mmendoza en mncn.csic.es> escribió:> > Buenas tardes, tengo 2 dfs: Dieta de (108x11) y Abund de (591x108). > Necesito multiplicar cada columna de la 1ª (108 > <https://maps.google.com/?q=de+la+1%C2%AA+(108&entry=gmail&source=g> > elementos) por cada > fila de la 2ª (108 elementos) y crear una nueva df con las sumas de > esas multiplicaciones. He hecho esto, pero no sale y creo que está > lejos de estar bien: > > > Res <- matrix(nrow=nrow(Abund),ncol=ncol(Dieta)) > Res <- as.data.frame(Res) > > for(i in 1:nrow(Dieta)){ > for(j in 1:ncol(Abund)){ > a<-as.vector(Dieta[,i]) > b<-as.vector(Abund[j,]) > sum <- sum(a * b) > Res[i,j]<-sum > } > print(i) > } > > > > -- > Dr Manuel Mendoza > Department of Biogeography and Global Change > National Museum of Natural History (MNCN) > Spanish Scientific Council (CSIC) > C/ Serrano 115bis, 28006 MADRID > Spain > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Marcelino de la Cruz Rot
2018-Jun-28 13:06 UTC
[R-es] suma del resultado de multiplicar fila x columna
En concreto, Abund%*%Dieta El 28/06/2018 a las 14:46, Carlos J. Gil Bellosta escribió:> Eso que cuentas se llama multiplicación matricial. Usa %*%. > > El jue., 28 jun. 2018 14:37, Manuel Mendoza <mmendoza en mncn.csic.es> > escribió: > >> Buenas tardes, tengo 2 dfs: Dieta de (108x11) y Abund de (591x108). >> Necesito multiplicar cada columna de la 1ª (108 >> <https://maps.google.com/?q=de+la+1%C2%AA+(108&entry=gmail&source=g> >> elementos) por cada >> fila de la 2ª (108 elementos) y crear una nueva df con las sumas de >> esas multiplicaciones. He hecho esto, pero no sale y creo que está >> lejos de estar bien: >> >> >> Res <- matrix(nrow=nrow(Abund),ncol=ncol(Dieta)) >> Res <- as.data.frame(Res) >> >> for(i in 1:nrow(Dieta)){ >> for(j in 1:ncol(Abund)){ >> a<-as.vector(Dieta[,i]) >> b<-as.vector(Abund[j,]) >> sum <- sum(a * b) >> Res[i,j]<-sum >> } >> print(i) >> } >> >> >> >> -- >> Dr Manuel Mendoza >> Department of Biogeography and Global Change >> National Museum of Natural History (MNCN) >> Spanish Scientific Council (CSIC) >> C/ Serrano 115bis, 28006 MADRID >> Spain >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > [[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 > . >-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España