У меня возникли проблемы с внесением изменений в мой набор данных с помощью функции. Я хотел бы использовать функцию, потому что мне придется создавать несколько новых столбцов, используя те же критерии.
Сначала я хотел бы внести некоторые изменения в столбец Num на основе критериев в столбце «Активность». Затем я хотел бы создать новый столбец с именем Freq, который назначает значения на основе критериев в моем столбце Num.
Мой текущий код, кажется, не вносит желаемых изменений в мой столбец Num, но применяет изменение к моему новому столбцу Freq. Например, моя функция указывает на применение 0, если Activity == «Нет». Хотя это изменение не было сделано, когда я запускаю код, мой столбец Freq, кажется, распознает внесенное изменение и применяет правильное значение. Кроме того, «Часто» отображается в моей колонке Freq, где Num - это NA.
Я уверен, что с моей функцией что-то не так. Любая помощь будет отличной!
library(tidyverse)
Activity <- c(rep("NA", 5), rep("No Answer", 5), rep("No", 5), rep("Don't Know", 5), rep("Yes",5))
Num <- c(rep("NA", 5), rep("0", 5), rep("NA", 5), rep("0", 5), 1,2,3,4,5)
data <- data.frame(Activity, Num)
freq_func <- function(Activity, Num) {
Num <- as.numeric(Num)
Num <- ifelse(Activity == "No Answer", NA,
ifelse(Activity == "No", 0,
ifelse(Activity == "Don't Know", NA, Num)))
ifelse(Num == 0, "None",
ifelse(Num > 0 & Num < 5, "Rarely",
ifelse(Num > 4 & Num <60, "Frequently",
ifelse(Num > 60, "Almost Always", NA))))
}
test <- data %>%
mutate(Freq = freq_func(Activity, Num))