Я работаю с набором данных, похожим на это:
test_accuracy <- data.frame(observed = c("Feeding/Moving", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Feeding/Moving", "Feeding/Moving"),
predicted = c("Standing", "Standing",
"Standing", "Standing", "Standing", "Moving/Feeding"))
Я пытаюсь преобразовать свои данные, заменив некоторые символы в столбце predicted
, например:
1) заменить Feeding/Moving
на Standing
2) заменить Standing
на Moving/Feeding
3) заменить Moving/Feeding
на Feeding/Moving
Я попытался компактно применить это преобразование, используя приведенный ниже код, и получил следующие ошибки:
> test_accuracy<-test_accuracy %>%
+ mutate(predicted = case_when(predicted == 'Feeding/Moving' ~ 'Standing',
+ predicted == 'Standing' ~ 'Moving/Feeding',
+ predicted == 'Moving/Feeding' ~ 'Feeding/Moving',
+ TRUE ~ predicted)) %>%
+
+
+ head(test_accuracy)
Error in mutate_impl(.data, dots) :
Evaluation error: must be type character, not integer
Call `rlang::last_error()` to see a backtrace.
Однако, при попытке исправить путем установки типа на character
, я получаю сообщение об ошибке, противоположное:
> test_accuracy<-as.character(test_accuracy)
> test_accuracy<-test_accuracy %>%
+ mutate(predicted = case_when(predicted == 'Feeding/Moving' ~ 'Standing',
+ predicted == 'Standing' ~ 'Moving/Feeding',
+ predicted == 'Moving/Feeding' ~ 'Feeding/Moving',
+ TRUE ~ predicted)) %>%
+
+
+ head(test_accuracy)
Error in UseMethod("mutate_") :
no applicable method for 'mutate_' applied to an object of class "character"
Любая идея о том, как я могу достичь желаемого преобразования, описанного выше с этим набором данных? Любая помощь приветствуется!