Мой код, как показано ниже. Я создал столбец «степень» на основе другого столбца, который содержит целые числа от 1 до 5.
Мой код ниже работает, потому что столбец был успешно создан. Однако, когда я вызываю любой код на основе столбца «градусы», я получаю NULLL ул (мои_данные $ степень)
my_data %>%
mutate(degree = case_when(edcat > 3 ~ "1",
edcat <=3 ~ "0") )
Вот что я получаю, когда использую «степень» в любом коде, несмотря на то, что я вижу, что столбец был успешно создан:
Error in [.data.frame(my_data, , "degree"): undefined columns selected
Traceback:
1. factor(my_data\[, "degree"\])
2. my_data\[, "degree"\]
3. [.data.frame(my_data, , "degree")
4. stop("undefined columns selected")
Да. Ошибка новичка, заключающаяся в том, что вывод не сохраняется в новом df или не назначается тому же фрейму данных после операции. Во время тестирования консоль выдаст правильный вывод, но не предложит вам сохранить его.
Привет @AdroMine. Я попробовал это, но это все еще не работает. Я относительно новичок в R. 'my_data <- my_data %>% mutate(степень = case_when(edcat > 3 ~ "1", edcat <=3 ~ "0"))'
Привет, @anuanand извиняюсь, да, я относительный новичок. Не могли бы вы посоветовать код для достижения этого?
Подробный ответ с примерными данными. Пожалуйста, примите, и я бы посоветовал изучить такие книги, как r4ds Хэдли, чтобы хорошо понять dplyr и основы.
Спасибо, мельница, я под давлением, это очень помогло, похоже, я понял, что это находка, но у меня был какой-то отступ или что-то не так





когда вы хотите обновить (перезаписать) фрейм данных с новым расчетом, просто используйте <-, как для переменной. Однако лучше сохранить в новом df, чтобы проверить результат и сохранить копию оригинала (для новичка, чтобы сравнить ввод и вывод).
здесь я сохраняю его в my_result. Или вместо этого используйте my_data <-
my_result<- my_data %>%
mutate(degree = case_when(
edcat > 3 ~ "1",
edcat <=3 ~ "0"))
Или, если вы используете тот же df в следующих процессах:
my_data<- my_data %>%
mutate(degree = case_when(
edcat > 3 ~ "1",
edcat <=3 ~ "0"))
с примерами данных для edcat:
my_data <- data.frame('edcat'= c(1,2,3,5,6,8))
my_data <- my_data%>%mutate(degree = case_when(
edcat > 3 ~ "1",
edcat <=3 ~ "0"))
my_data
edcat degree
1 1 0
2 2 0
3 3 0
4 5 1
5 6 1
6 8 1
Теперь вы можете использовать его любым способом, скажем, в градусах:
my_data%>%group_by(degree)%>%summarise(N=n())
# A tibble: 2 x 2
degree N
<chr> <int>
1 0 3
2 1 3
Но все это основное. Пожалуйста, проверьте хорошие ресурсы, чтобы изучить dplyr, такие как Hadley Wickams R 4 Data Science
вы вернули измененные данные
my_data? должно бытьmy_data <- my_data %>% mutate(...)