Заменить числа в векторе соответствующими значениями из фактора в R

#r #dataframe #vector

#r #dataframe #вектор

Вопрос:

Я хочу заменить числа в ‘Vector_to_rename’ на соответствующий фактор в ‘groups_factor’, который связан с уровнем фактора (1-5). Уровни факторов получены из уникальных значений в ‘Dataframe’.

Пожалуйста, смотрите пример кода ниже:

 Vector_to_rename <- data.frame(samples = c(1,1,3,3,3,4,5,5,2,2,3,4,5,5,1,5,2,4,1,4,5,5,3,3,3,2))

Dataframe <- data.frame(ind_comp_a = c("OP5054DNAbMOU","OP5044___cMOU","OP5051DNAbCOM","OP5044___bMOU","OP5047___aPHA","OP5049___aWAT","OP5044___aMOU","OP5046___eWAT","OP5048___dPHA","OP5048___bPHA","OP5047___bPHA","OP5053DNAaPHA","OP5048___hPHA","OP5048___fPHA","OP2645ii_bPOR","OP5048___cPHA","OP5046___cWAT","OP2645ii_dPOR","OP5043___bWAT","OP2645ii_cPOR","OP3088i__aPOR","OP5048___ePHA","OP5046___aWAT","OP5046___dWAT","OP5046___bWAT","OP2413iiicMOU"),
                          group_a = c("mou","mou","pha","mou","wat","pha","mou","wat","mou","wat","com","wat","wat","wat","mou","wat","por","por","pha","por","com","wat","por","por","pha","com"))
                          

groups_factor <- unique(Dataframe$group_a)
  

Большое спасибо
Deon

Ответ №1:

просто используйте labels .

 factor(Vector_to_rename$samples, labels=groups_factor)
  

дает

  [1] mou mou wat wat wat com por por pha pha wat com por por mou por pha com mou com por por wat wat wat pha
  

с

 Levels: mou pha wat com por
  

очевидно, что порядок должен совпадать.