У меня есть contr_factors фрейма данных, с 1932 строками и следующими столбцами: состояние, невооруженное, not_flee, white_victim, атаковано. Я хочу изменить факторы в наборе данных, и я писал этот код:R коэффициент изменения в наборе данных
contr_factors$unarmed <- as.factor(contr_factors$unarmed)
levels(contr_factors$unarmed) <- c("Armed", "Unarmed")
contr_factors$white_victim <- as.factor(contr_factors$white_victim)
levels(contr_factors$white_victim) <- c("Non-white", "White")
contr_factors$not_flee <- as.factor(contr_factors$not_flee)
levels(contr_factors$not_flee) <- c("Flee", "Not flee")
contr_factors$attacked <- as.factor(contr_factors$attacked)
levels(contr_factors$attacked) <- c("Not attack", "attack")`
Но я хочу, чтобы мой код сортировщик, и я попробовал эту функцию:
change_factors <- function(df, df_col, `name1`, `name2`) {
as.factor(df$df_col)
levels(df$df_col) <- c("name1", "name2")
}
change_factors(contr_factors, not_flee, `Flee`, `Not flee`)
Но у меня есть ошибка: Ошибка в уровнях (df $ df_col) < - c ("name1", "name2"): попытка установить атрибут в NULL.
Вы должны использовать 'df [[df_col]]' not 'df $ df_col', а затем вызывать функцию с' "not_flee" '(с кавычками). –
Существует уже встроенная функция, которая делает то, что вы хотите. 'factor (contr_factors $ unarmed, levels = c (" Armed "," Unarmed ")'. Он также имеет аргумент 'label', который позволяет вам повторно маркировать уровни, если хотите. – konvas