факторизовать все столбцы по их уровням, сколько раз они встречаются в атрибуте моего набора данных - PullRequest
0 голосов
/ 23 октября 2018

это мой набор данных, на котором я хочу завершить факторизацию своего набора данных с каждым уровнем подсчета каждого атрибута файла Это мой код:

    library(dplyr)
    #read File
    h_Data<-read.csv(file.choose())
    #store university attribute
    h_Data<-h_Data$University

    #Count each levels factor of data of 
    h_DataDF <- data.frame(h_Data)
    h_dataLevels<-h_DataDF %>% 
    group_by(h_Data) %>%
    summarise(no_rows = length(h_Data))
    h_dataLevels  

    #missing of data
    h_DataMissing<-sum(is.na(h_Data))
    h_DataMissing

    #percentage of each level of factor
    h_DataPer<-prop.table(table(h_Data))*100

    #table format
    h_DataTable <-data.frame(levels_data=h_dataLevels,levels_perc=h_DataPer,missing_data=h_DataMissing)
    h_DataTable

Я хочусуммировать как: levels_University № of_timesLevels Percentage_of_Level MissingAttributes IBA 4 57,14 0 KU 1 14,28 0 UIT 2 28,57 0

1 Ответ

0 голосов
/ 23 октября 2018

Трудно точно знать, что вы хотите, без каких-либо выборочных данных и желаемого результата, но вот код, который принимает фрейм данных, и для каждого столбца, который является фактором, возвращается фрейм данных, перечисляющий количество наблюдений для каждого уровня фактора.

## dummy data
df <- data.frame(Sex = c("m", "f", "m","f"), department = c("bs", "el", "bs", "se"), numbers = c(1,2,3,4))

## function that takes a column of data
## and returns factor counts if the column is a factor
countFactors <- function(col){
     if(is.factor(col)){
          fct_count(col)
     }else{
          NULL
     }
}

## use purrr::map to iterate through the columns of the
## dataframe and apply the function
df %>% 
     map(~ countFactors(.)) %>% 
     compact()
...