Я уверен, что на это есть простой ответ, но я просканировал переполнение стека и не смог найти решение.Казалось бы, потенциально сочетание функций sapply и ifelse сделало бы эту работу (но я не уверен).
Итак, у меня есть фрейм данных с символами, кроме одного столбца, который является числовым значением.
####Create dataframe which needs converting
df <- data.frame(Sample_1 = rep(letters[1:3], each = 3),
Sample_2 = rep("a", times = 9))
df$Number <- rep(seq(from=1,to=3,by=1))
Я хотел бы преобразовать символы в этом кадре данных в конкретное число.То, во что должен быть преобразован символ, зависит от числа в последнем столбце.Таким образом, критерии были бы:
- Если число = 1, то а должно измениться на 30, b должно измениться на 20, а с должно измениться на 10
- Если число = 2, тоa должно измениться на 35, b должно измениться на 25, а c должно измениться на 15
- Если число = 3, то a изменить на 40, b изменить на 30, а c изменить на 20
Вот кадр данных, выделяющий это преобразование
A <- c(30,20,10)
B <- c(35,25,15)
C <- c(40,30,20)
Conversion_df <- data.frame(A, B,C)
А вот желаемый результат.
Final <- data.frame(Sample_1 = c(30,20,10,35,25,15,40,30,20),
Sample_2 = c(30,20,10,30,20,10,30,20,10))
Заранее благодарю за любую помощь.