Вот как я строю df
df_test <- data.frame(ID = c("1100455", "1100455", "1100464", "1100464"),
CATEGORIE = c("10110", "90310", "10110","10140"),
RANK = c( "1", "0" ,"1", "1"),
MD = c("0", "0", "0", "3" ),
PROD3 = c(2345.00,1114.58,501.40,125.15))
newvars <- paste("aa",df_test[["CATEGORIE"]],df_test[["RANK"]],df_test[["MD"]],"ta", sep="_")
newvars <- unique(newvars)
newvars
df_test[newvars] <- NA
фактический фрейм данных:
ID CATEGORIE RANK MD PROD3 aa_10110_1_0_ta aa_90310_0_0_ta aa_10140_1_3_ta
1 1100455 10110 1 0 2345.00 NA NA NA
2 1100455 90310 0 0 1114.58 NA NA NA
3 1100464 10110 1 0 501.40 NA NA NA
4 1100464 10140 1 3 125.15 NA NA NA
Я пытаюсь обновить столбцы на основе значений других столбцов,
df_test <- df_test %>% mutate(get(paste0("aa_", CATEGORIE,"_",RANK,"_",MD,"_ta" ) = PROD3 )))
Мне не удается заставить его работать, мне интересно, возможно ли это только с помощью mutate или если мне нужно использовать отдельную функцию?
ожидаемые результаты:
ID CATEGORIE RANK MD PROD3 aa_10110_1_0_ta aa_90310_0_0_ta aa_10140_1_3_ta
1 1100455 10110 1 0 2345.00 2345.0 NA NA
2 1100455 90310 0 0 1114.58 NA 1114.58 NA
3 1100464 10110 1 0 501.40 501.4 NA NA
4 1100464 10140 1 3 125.15 NA NA 125.15