2016-08-24 2 views
0

Мой кадр данных df1 как нижеЗаменитель столбец данных одного кадра данных с данными столбцов в другом кадре данных в R

A B 
#1 1 3,4 
#2 2 5 
#3 3 4,1 
#4 4 1,3 
#5 5 2 

я хочу, чтобы заменить номера А и столбцов В с идентификаторов снизу кадра данных DF2

ID DATA 
#1 101 data1 
#2 503 data2 
#3 890 data3 
#4 1164 data4 
#5 5367 data5 

Вместо 1,2,3 ... DF1 должен содержать данные, как показано ниже (ожидаемый выход просто заменить число перечисленных в A, B, столбцы с соответствующими идентификаторами)

 A B 
#1 101 890,1164 
#2 503 5367 
#3 890 1164,101 
#4 1164 101,890 
#5 5367 503 

Пожалуйста, дайте мне способ достичь этого. Благодаря

+0

где делает '409, 1164' пришли из? – HubertL

+0

Данные столбца A, B должны быть заменены идентификаторами в DF2. Отредактированные данные, пожалуйста, проверьте @HubertL – user2014

+0

OK Я получил его. пожалуйста, замените 809 на 890 – HubertL

ответ

2

Для первого столбца это прямо вперед:

df1$A <- df2[df1$A,"ID"] 

Для второго столбца вы должны использовать strsplit и paste из-за несколько колонка значения:

df1$B <- sapply(df1$B, function(s) 
    paste( 
     df2[strsplit(as.character(s),",")[[1]],"ID"], 
     collapse=",")) 

df1 
    A  B 
1 101 890,1164 
2 503  5367 
3 890 1164,101 
4 1164 101,890 
5 5367  503 
+0

Большое спасибо. Не могли бы вы рассказать мне, как я могу объединить df1 и df2 (теперь у df2 больше счетчика строк, чем df1) – user2014

+0

Я не понимаю ваш вопрос @ user2014, число строк df1 и df2 не должно меняться во время процесса – HubertL

+0

У меня есть способ объединить df1 и df2. Но только первое число печатается в столбце B, остальные числа отображаются как NA, NA, NA ..... не могу думать о причине. Пожалуйста, предложите! @HubertL – user2014

Смежные вопросы