Pessoal, bom dia!
Tenho uma dúvida e gostaria de saber quem pode me ajudar:
names(df)
[1] “Country” “HDI_Rank” “HDI” “CPI” “Region”
type_columns <- NULL
for (i in 1:length(names(df))) {
type_columns[i] <- class(df[[i]])
i = i + 1
}
type_columns_num <- NULL
type_columns_ch <- NULL
for (j in 1:length(type_columns)) {
if (type_columns[j] == “character”) {
type_columns_ch[j] <- type_columns[j]
} else{
type_columns_num[j] <- type_columns[j]
}
}
eu não quero esse NA
type_columns_ch
[1] “character” NA “character” “character” “character”
eu tb não quero esse NA
type_columns_num
[1] NA “numeric”
Como devo fazer? Sorry pela dúvida de iniciante
Obrigado,
Salerno
Oi, Andre
Na parte final do seu código, você precisaria usar outros índices para atribuir valores nos vetores type_columns_xx:
i <- 1
k <- 1
for (j in 1:length(type_columns)) {
if (type_columns[j] == "character") {
type_columns_ch[i] <- type_columns[j]
i = i + 1
} else {
type_columns_num[k] <- type_columns[j]
k = k + 1
}
}
Existe no entanto um jeito mais simples de fazer essa operação.
# install.packages(purrr)
purrr::map_chr(mtcars, class)
#> mpg cyl disp hp drat wt qsec vs
#> "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
#> am gear carb
#> "numeric" "numeric" "numeric"
A saída desse código é um vetor com a classe de cada uma das colunas. A função map_chr() aplica a função class em cada coluna da base mtcars.
Created on 2020-10-06 by the reprex package (v0.3.0)
1 curtida
Super obrigado! Vou tentar por aqui (eu não tinha visto esse erro meu dos índices
De qualquer forma, aprendi mais uma!
Abraços,
Obrigado
1 curtida