Prezado Alan,

O que foi isso? Mágica?

Única alteração que fiz foi trocar o G pelo Q. Inclusive saltou as primeiras 3 variáveis que eram sexo, idade e tempo que não deveriam ser alteradas pela função.

-----
x <- ... # Seu data.frame aqui
vars <- sapply(c(1:63), function(x) { paste('Q', x, sep = "") })
new_labels <- c("Discordo totalmente", "Discordo", "Neutro", "Concordo", "Concordo totalmente")

for (var in vars) {
    x[[var]] <- factor(x[[var]], label = new_labels, levels = 1:5)
}
----
Confesso que fiquei atordoado, não entendi nada, mas funcionou mesmo!
Pode explicar?

Já salvei dos dados em .Rdata. 

Muitíssimo obrigado mesmo.

Alessandro



Em Quarta-feira, 3 de Dezembro de 2014 0:32, Alan Fachini <alfakini@gmail.com> escreveu:


​Oi Alessandro, deve ter uma forma mais elegante de se fazer isso no R, mas você pode usar isso aqui para solucionar seu problema rapidamente:

x <- ... # Seu data.frame aqui
vars <- sapply(c(1:63), function(x) { paste('G', x, sep = "") })
new_labels <- c("Discordo totalmente", "Discordo", "Neutro", "Concordo", "Concordo totalmente")

for (var in vars) {
    x[[var]] <- factor(x[[var]], label = new_labels, levels = 1:5)
}

Abs,

alf.

2014-12-03 0:53 GMT-02:00 Alessandro Corrêa <alessand22@yahoo.com.br>:
Prezados colegas,

Estou com um banco de dados (x) no seguinte formato

sexo idade tempo Q1 Q2 Q3 Q4 Q5 Q6 ...Q63
    1    44  24.0      4  3  3  3  2  4
    0    62  28.0      1  5  2  2  3  1
    1    52   6.0       4  5  4  2  5  4
    0    51  27.0      4  4  4  3  3  3
    1    32   3.5       1  3  2  1  4  3
    0    33   5.0       1  5  1  1  1  1

As variáveis de Q1 a Q6 são variáveis na escala de Likert
1 = Discordo totalmente
2 = Discordo
3 = Neutro
4 = Concordo
5 = Concordo totalmente

Gostaria de saber se é possível criar uma rotina ou se há uma função capaz de
formatar as variáveis de Q1 a Q63 em fatores com as etiquetas referentes a cada nível.

Se eu fosse fazer uma a uma, repetiria 63 vezes o seguinte comando para cada variável:

x$Q1<-factor(x$Q1, label=c("Discordo totalmente", "Discordo", "Neutro", "Concordo", "Concordo totalmente"), levels=1:5)

Acredito que haja uma maneira mais prática.

Obrigado desde já.


Alessandro



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