O que Eder falou. Mas mesmo assim não daria certo. O jeito mais fácil, mas é um "copout" é usar um loop. Ou se quiser mesmo apply:
apply(names(dados),2,funcao) modificando a funcao para pegar o nome da coluna e extrair de 'dados'. 2012/2/6 Eder David Borges da Silva <[email protected]> > Vanessa, > se sei se é esse o problemas, mas sua matriz parece estar sem nome, > por isso esta retornando o NULL > quando a matriz tem nome nas colunas o colnames funciona: > > dados = replicate(100,rnorm(50)) > ## Colocando os nomes > dimnames(dados)[[2]] <- paste('X',1:100,sep='') > head(dados) > colnames(dados) > > dimnames(dados)[[2]] > > funcao = function(coluna){ > y = coluna > x = 2*coluna > tabela = data.frame(x,y) > nome1 = colnames(coluna) > nome2 = names(coluna) > #write.csv(FILE,paste(nome1,'.csv',sep='')) > saida = list(nome1,nome2,x,y) > return(saida) > } > > resultados = apply(dados,2,funcao) > > Acho que pode ser isso... > Éder > > > > Em 6 de fevereiro de 2012 16:12, Vanessa Leotti Torman > <[email protected]> escreveu: > > Caros membros da lista R-br, > > > > gostaria de uma ajuda em relação a situação a seguir. Gostaria de aplicar > > certa função as colunas de uma matriz, sendo que entre outras coisas, a > > função que desejo deve gravar arquivos csv com os dados. Entretanto, > preciso > > de um arquivo apra cada coluna, e não estou conseguindo transferir o nome > > (ou número da coluna) dentro da função apply. > > > > Um código exemplo está abaixo: > > > > dados = replicate(100,rnorm(50)) > > > > funcao = function(coluna){ > > y = coluna > > x = 2*coluna > > tabela = data.frame(x,y) > > nome1 = colnames(coluna) > > nome2 = names(coluna) > > #write.csv("tabela_?NOMEDACOLUNA?.csv") > > saida = list(nome1,nome2,x,y) > > return(saida) > > } > > > > resultados = apply(dados,2,funcao) > > > > O problema está em como passar o nome da coluna, pois tanto o "names" e o > > "colnames" retornam NULL. > > > > Eu sei que se o objetivo fosse somente o de criar estes vários arquivos > > poderia usar "eval" e "paste", mas a função que quero aplicar é muito > mais > > complexa que esta. O objetivo de criar os arquivos csv é poder tirar > alguns > > objetos da saída da minha função e assim economizar memória RAM. Tais > > objetos não são primordias para mim mas gostaria de salvá-los. > > > > Muito obrigada, > > Vanessa B Leotti Torman > > UFRGS > > > > > > > > > > > > _______________________________________________ > > R-br mailing list > > [email protected] > > 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 > [email protected] > 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 [email protected] 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.
