[R-br] Usando o nome da coluna dentro do apply

Eder David Borges da Silva eder em leg.ufpr.br
Segunda Fevereiro 6 16:44:33 BRST 2012


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.


Mais detalhes sobre a lista de discussão R-br