Как разбить строку на две части (это имя столбца и его значение) - PullRequest
0 голосов
/ 23 апреля 2019

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

Я бы хотела отделить часть столбца от нее, чтобы я могла провести некоторый анализ на ней.

df <- data.frame(col1 = c('life_stageAdult','books', 'bags', 'educationMasters'), col2 = c(100, 90, 80, 70))
original_column_names <- c('life_stage','books', 'bags', 'education', 'gender')

Iхочу, чтобы мой вывод был:

factot_cols = c('life_stage','education')

1 Ответ

0 голосов
/ 23 апреля 2019
dataset <- data.frame(life_stage=rep(c("Adult","Child"),n=5),
                  books = c(1:10),
                  bags = rep(c(1,0),n=5),
                  education = rep(c("Bachelors","Masters"),n=5))
# List of variables you entered in the model
model_vars <- c("life_stage","books","bags","education")

levels_dataset <- dataset %>%
 select(model_vars) %>% 
 summarise_each(funs(as.numeric(length(levels(.))))) %>% 
 unlist()

levels_dataset <- ifelse(levels_dataset==0,1,levels_dataset-1)

names_dataset <- rep(names(dataset),levels_dataset)

#Your model output 'df' with columns

df <- data.frame(col1 = c('life_stageAdult','books', 'bags', 'educationMasters'), 
             col2 = c(100, 90, 80, 70))

df <- data.frame(df,names_dataset) %>% 
  mutate(level = str_replace(col1,
                         pattern = as.character(names_dataset),""))
...