проблема у вас здесь с назначением. Оператор <-
в вашем случае назначает 1 индексируемому значению, а не добавлению 1, поэтому решение @hrbrmstr работает путем изменения <-
на +
. Возьмите этот упрощенный пример:
x <- c(2:10) #dummy sequence
x[3] # index 3rd value in sequence
x[3] <- 1 # replace 3rd value with 1
x # value that was 4 is now 1
x[3] <- x[3]+1 # index 3rd value and add 1 to that value
x # value that became 1 is now 2
Если вам нужно выполнить много подобных манипуляций с большими наборами данных, вы можете обнаружить, что решение по решению проблемы становится проще, как это:
library(tidyverse)
class_df <- data.frame(maths = c(1,2,3),
english = c(3,2,1),
class = c("yr_9", "yr_10", "yr_11"))
class_df <- class_df %>%
mutate(maths = case_when(class == "yr_9" ~ maths +1, TRUE ~ as.numeric(maths)))
Проверьте этот ресурс для информации https://jules32.github.io/2016-07-12-Oxford/dplyr_tidyr/
Ура! * * 1013