
Apenas tire a parte 'matrix.x$' e deve funcionar: R2 <- ddply(matrix.x, 'seq', transform, var=funcao.x(var1)) ________________________________ De: Tropidurus Torquatus <t.torquatus@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Terça-feira, 25 de Fevereiro de 2014 12:41 Assunto: [R-br] Família ply Caros R-users Dada uma matrix qualquer: seq = c("a","a","a","a","a","a","b","b","b","b","b","c","c","c","c","c","c","c","c","c","c","c","c","c”) var1 = c(1,2,3,4,5,6,0,1,2,3,4,0,1,2,3,4,5,6,7,8,9,10,11,12) matrix.x = data.frame(seq,var1) funcao.x = function(x,d=1,T=3) { i = exp ( ( -x ) / ( d * T ) ) net = sum (i) resultado = 100 * ( i / net ) return (resultado) } Preciso aplicar a função dentro de cada subgrupo (seq) da matrix.x e criar ou um novo data.frame ou uma nova linha da matrix.x. Tentei utilizar o comando ddply do pacote, com o comando abaixo, não sei se essa seria a melhor forma, mas mesmo assim não estou conseguindo: library(“plyr”) R2 <- ddply(matrix.x, 'seq', transform, var=funcao.x(matrix.x$var1)) Error in data.frame(list(seq = c(2L, 2L, 2L, 2L, 2L), var1 = c(0, 1, 2, : arguments imply differing number of rows: 5, 24 Na verdade essa formula deveria dar um valor para cada linha… não sei se escolhi a função correta para o que necessito, alguém poderia me mostrar um caminho a seguir? No mais agradeço, Thales Siqueira _______________________________________________ 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.