Tenho um quadro de dados chamado "newprice" (veja abaixo) e quero mudar os nomes das colunas do meu programa em R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
Na verdade, é isto que estou a fazer:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
Não pus isto em loop porque quero que cada nome de coluna seja diferente, como vêem.
Quando eu colei meu programa no console R, esta é a saída que ele me dá:
> names(newprice)[1]<-paste(“premium”)
Error: unexpected input in "names(newprice)[1]<-paste(“"
> names(newprice)[2]<-paste(“change”)
Error: unexpected input in "names(newprice)[2]<-paste(“"
> names(newprice)[3]<-paste(“newpremium”)
Error: unexpected input in "names(newprice)[3]<-paste(“"
Eu também tentei utilizar a função c()
, por exemplo c("premium")
, ao invés da função paste()
, mas sem sucesso.
Alguém me pode ajudar a perceber isto?
Utilize a função colnames()
:
R> X <- data.frame(bad=1:3, worse=rnorm(3))
R> X
bad worse
1 1 -2.440467
2 2 1.320113
3 3 -0.306639
R> colnames(X) <- c("good", "better")
R> X
good better
1 1 -2.440467
2 2 1.320113
3 3 -0.306639
Você também pode fazer um subconjunto:
R> colnames(X)[2] <- "superduper"
O erro é causado pelo "smart-quotes" (ou o que quer que eles're chamado). A lição aqui é, "don't escreva seu código num 'editor' que converte aspas para smart-quotes".
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Além disso, você não precisa de paste("premium")
(a chamada para paste
é redundante) e é uma boa idéia colocar espaços em torno de <-
para evitar confusão (por exemplo x <-10; if(x<-3) "hi" else "bye";; x
).