Cassiano, uma forma alternativa é a rotina abaixo:

Suponha que você tenha um banco chamdado atual com as variáveis: "Pontos", 
"Total.pontos.atend", "indicador"


e queira renomear essas variáveis para "pontuacao", "total_atend", "parametro".

Use a rotina:

novo<-data.frame(pontuacao=atual$Pontos,total_atend=atual$Total.pontos.atend,parametro=
 atual$indicador)


Veja se funciona.

[]'s

 
Edson Lira
Estatístico
Manaus-Amazonas


________________________________
De: Cassiano <[email protected]>
Para: [email protected]
Enviadas: Terça-feira, 9 de Agosto de 2011 8:37
Assunto: [R-br] mudança de nomes de colunas (variáveis) em uma lista


Olá pessoal, sou iniciante no R e estou quebrando a cabeça em um problema que, 
acho, deve ter uma solução simples. Tenho uma lista de data.frames com os 
mesmos nomes nas colunas (nomes das variáveis). No total são 8 itens 
(data.frames).
Quero mudar o nome de algumas variáveis e estou usando para isso, gsub(). Com 
um laço for consegui executar a tarefa. O código que usei foi

for(i in 1:length(Indicador)) {
  names(Indicador[[i]]) <- gsub("Pontos", "Total.pontos.atend", 
names(Indicador[[i]]))
  names(Indicador[[i]]) <- gsub("Comercio", "Comercio", names(Indicador[[i]]))
  names(Indicador[[i]]) <- gsub("(.)*Folha", "Liberada.folha", 
names(Indicador[[i]]))
  names(Indicador[[i]]) <- gsub("(.)*Atendimento", "Ponto.atend", 
names(Indicador[[i]]))
}

onde, Indicador = list(), e as strings dentro do gsub são os nomes da variáveis 
originais e os nomes novos, respectivamente.

Porém acredito que exista uma forma mais eficaz, provavelmente sem usar o laço 
for.

Tentei de outra maneira (para o primeiro gsub do laço anterior) com 

> gsub("Pontos", "Total.pontos.atend", lapply(Indicador, names))
Esse último gsub fez as mudanças, porém gera uma saída como

[1] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[2] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[3] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[4] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[5] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[6] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[7] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[8] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"
[9] "c(\"Nome\", \"Codigo\", \"Lotericos\", \"SAA\", \"SNC\", \"PAE\", 
\"Total.pontos.atend\")"

Aqui, "Pontos" foi alterado para "Total.pontos.atend".

Se isso estiver certo como faço para atribuir o novo nome para os nomes das 
variáveis dos data.frames em cada item da lista "Indicador".

Abraços!

Cassiano Novais
Consultor economista

_______________________________________________
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.

Responder a