У меня есть фрейм данных со столбцом фактора с уровнями j , а также j векторов длины k . Я хотел бы заполнить столбцы k в первом кадре данных значениями из последних векторов, в зависимости от фактора.
Упрощенный пример (три уровня, три вектора, два значения):
df1 <- data.frame("Factor" = rep(c("A", "B", "C"), times = 5))
vecA <- c(1, 2)
vecB <- c(2, 1)
vecC <- c(3, 3)
Вот решение с использованием вложенных операторов ifelse:
library(tidyverse)
df1 %>%
mutate(V1 = ifelse(Factor == "A", vecA[1],
ifelse(Factor == "B", vecB[1], vecC[1])),
V2 = ifelse(Factor == "A", vecA[2],
ifelse(Factor == "B", vecB[2], vecC[2])))
Я хотел бы избегать вложенных операторов ifelse. В идеале я бы также хотел не менять каждый столбец отдельно.