somar - selecionar linhas data frame r



Converter o formato da coluna data.frame de caractere para fator (4)

Eu gostaria de mudar o formato (classe) de algumas colunas do meu objeto mydf ( mydf ) de charactor para factor .

Eu não quero fazer isso quando estou lendo o arquivo de texto pela função read.table() .

Qualquer ajuda seria apreciada.


Answer #1

Eu fiz isso com uma função. Neste caso, só vou transformar variáveis ​​de caracteres em fator:

for (i in 1:ncol(data)){
    if(is.character(data[,i])){
        data[,i]=factor(data[,i])
    }
}

Answer #2

Oi bem vindo ao mundo da R.

mtcars  #look at this built in data set
str(mtcars) #allows you to see the classes of the variables (all numeric)

#one approach it to index with the $ sign and the as.factor function
mtcars$am <- as.factor(mtcars$am)
#another approach
mtcars[, 'cyl'] <- as.factor(mtcars[, 'cyl'])
str(mtcars)  # now look at the classes

Isso também funciona para caracteres, datas, inteiros e outras classes

Como você é novo no R, sugiro que dê uma olhada nestes dois sites:

R manuais de referência: http://cran.r-project.org/manuals.html

R Cartão de referência: http://cran.r-project.org/doc/contrib/Short-refcard.pdf


Answer #3

Se você quiser alterar todas as variáveis ​​de caractere em seu data.frame para fatores depois de já ter carregado seus dados, você pode fazer assim, em um data.frame chamado dat :

character_vars <- lapply(dat, class) == "character"
dat[, character_vars] <- lapply(dat[, character_vars], as.factor)

Isso cria um vetor identificando quais colunas são de classe character , em seguida, aplica as.factor a essas colunas.

Dados de amostra:

dat <- data.frame(var1 = c("a", "b"),
                  var2 = c("hi", "low"),
                  var3 = c(0, 0.1),
                  stringsAsFactors = FALSE
                  )

Answer #4

Você poderia usar dplyr::mutate_if() para converter todas as colunas de caracteres ou dplyr::mutate_at() para selecionar colunas de caracteres nomeados para os fatores:

library(dplyr)

# all character columns to factor:
df <- mutate_if(df, is.character, as.factor)

# select character columns 'char1', 'char2', etc. to factor:
df <- mutate_at(df, vars(char1, char2), as.factor)




r-faq