Без воспроизводимого примера вашей таблицы трудно быть уверенным, что выглядит как последний столбец (кажется, что это список, но не уверен).
Вы можете попробовать на второй таблице:
Table2$gene <- sapply(Table2$markerid, function(x) Table1$Gene[grep(x,Table1$marker_id)])
Вот пример с фиктивными фреймами данных:
dataA <- data.frame(Gene = LETTERS[1:5],
marker = paste(letters[6:10],"_A"))
Gene marker
1 A f _A
2 B g _A
3 C h _A
4 D i _A
5 E j _A
dataB <- data.frame(marker = letters[6:8])
marker
1 f
2 g
3 h
А теперь, если вы используете sapply
функция:
dataB$Gene <- sapply(dataB$marker, function(x) dataA$Gene[grep(x,dataA$marker)])
1 f A
2 g B
3 h C
Выглядит ли то, что вы пытаетесь получить?
Если она не работает, вы можете предоставить вывод str(Table1)
?