[R-br] Usando o nome da coluna dentro do apply
Vanessa Leotti Torman
vleotti em yahoo.com.br
Quinta Fevereiro 9 17:11:03 BRST 2012
Obrigada Eduardo! É isso aí.
Abraços,
Vanessa
________________________________
De: Eduardo Leoni <e.leoni em gmail.com>
Para: r-br em listas.c3sl.ufpr.br
Enviadas: Terça-feira, 7 de Fevereiro de 2012 15:13
Assunto: Re: [R-br] Usando o nome da coluna dentro do apply
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 <eder em leg.ufpr.br>
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
><vleotti em yahoo.com.br> 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
>> R-br em 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 em 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 em 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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120209/37137d5b/attachment.html>
Mais detalhes sobre a lista de discussão R-br