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