Mutating a column in a dataframe (1) based off a data in dataframe (1) that exist in another dataframe (2)

76 Views Asked by At

I would like to mutate a column in a df (1), based off a data in df (2) in relation to the data that exist in both df (1) and (2). Like join function.

So I have this dataframe (df):

df <- structure(list(orientasi = c("gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", "gay", 
"gay", "gay", "gay", "gay", "gay"), tahun = c(1980L, 1981L, 1982L, 
1983L, 1984L, 1985L, 1986L, 1987L, 1988L, 1989L, 1990L, 1991L, 
1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 
1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 1992L, 1993L, 1993L, 
1993L, 1993L, 1993L, 1993L, 1993L, 1994L, 1994L, 1994L, 1994L, 
1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1995L, 1995L, 
1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 
1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 
1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 
1995L, 1995L, 1995L, 1995L, 1996L, 1996L, 1996L, 1996L, 1996L, 
1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 
1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 1996L), token = c("абагайтуйская", 
"абагайтуйская", "абагайтуйские", "абагайтуйский", "абагайтуйским", "абагайтуйских", 
"абагайтуйское", "абагайтуйской", "абагайтуйскому", "абагайтуйскую", "cгей", "славяне", "", "эхо", "татарстане", 
"донесшийся", "менска", "лихой", "клич", 
"гей", "славяне", "вызвал", "многонациональной", 
"республике", "ответного", "энтузиазма", 
"character", "своему", "сексуальному", "поведению", 
"ягей", "комбайн", "садомазохист", "", 
"рассказывают", "двери", "женских", "туалетов", 
"журфака", "изложена", "слезная", "история", 
"девушки", "влюбившейся", "гея", "cих", 
"брак", "закончился", "течение", "элтон", 
"джон", "понял", "бисексуал", "настоящий", 
"гей", "отныне", "женщины", "интересуют", 
"похоже", "начинает", "обрушиваться", 
"вторая", "пирамида", "мавроди", "сексменьшинствами", 
"оказалось", "значительно", "пресловутая", 
"", "права", "отчаянно", "бьются", "активистыгеи", 
"лесбиянкитолько", "", "мужчин", "", "женщин", 
"cгеи", "счастливо", "сложилась", "песнь", 
"матерого", "гея", "элтона", "джона", "дуэте", 
"именитым", "трансвеститом", "рупол", 
"клип", "жизнерадостную", "парочку", 
"пытается", "разлучить", "какнибудь", 
"ущемить", "голубоватые", "права")), row.names = c(NA, 
100L), class = "data.frame")

And this dataframe (df2)

df2 <- structure(list(token = c("абалмасовыми", "абалмасовых", 
"абалымов", "абалымова", "абалымове", 
"абалымовой", "абалымову", "абалымовы", 
"абалымовым", "абалымовыми", "абалымовых", 
"абальян", "абальяна", "абальянам", "абальянами", 
"абальянах", "абальяне", "абальянов", 
"абальяном", "абальяну", "абальяны", 
"абаляев", "абаляева", "абаляеве", "абаляевой", 
"абаляеву", "абаляевы", "абаляевым", 
"абаляевыми", "абаляевых", "абам", "абами", 
"абанагроавтотранс", "абанагроавтотранса", 
"абанагроавтотрансам", "абанагроавтотрансами", 
"абанагроавтотрансах", "абанагроавтотрансе", 
"абанагроавтотрансов", "абанагроавтотрансом", 
"абанагроавтотрансу", "абанагроавтотрансы", 
"абанагропромхимией", "абанагропромхимии", 
"абанагропромхимию", "абанагропромхимия", 
"абандон", "абандона", "абандонам", "абандонами", 
"абандонах", "абандоне", "абандонов", 
"абандоном", "абандону", "абандоны", 
"абанская", "абанские", "абанский", "абанским", 
"абанскими", "абанских", "абанского", 
"абанское", "абанской", "абанском", "абанскому", 
"абанскою", "абанскую", "абарин", "абарина", 
"абарине", "абариной", "абарину", "абарины", 
"абариным", "абариными", "абариных", 
"абарчук", "абарчука", "абарчукам", "абарчуками", 
"абарчуках", "абарчуке", "абарчуки", 
"абарчуков", "абарчуком", "абарчуку", 
"абаршалин", "абаршалина", "абаршалине", 
"абаршалиной", "абаршалину", "абаршалины", 
"абаршалиным", "абаршалиными", "абаршалиных", 
"абас", "абаса", "абасали", "абасалиевен"
), lemma = c("абалмасовы", "абалмасовы", 
"абалымов", "абалымов", "абалымов", "абалымова", 
"абалымов", "абалымовы", "абалымов", 
"абалымовы", "абалымовы", "абальян", 
"абальян", "абальяны", "абальяны", "абальяны", 
"абальян", "абальяны", "абальян", "абальян", 
"абальяны", "абаляев", "абаляев", "абаляев", 
"абаляева", "абаляев", "абаляевы", "абаляев", 
"абаляевы", "абаляевы", "аба", "аба", "абанагроавтотранс", 
"абанагроавтотранс", "абанагроавтотранс", 
"абанагроавтотранс", "абанагроавтотранс", 
"абанагроавтотранс", "абанагроавтотранс", 
"абанагроавтотранс", "абанагроавтотранс", 
"абанагроавтотранс", "абанагропромхимия", 
"абанагропромхимия", "абанагропромхимия", 
"абанагропромхимия", "абандон", "абандон", 
"абандон", "абандон", "абандон", "абандон", 
"абандон", "абандон", "абандон", "абандон", 
"абанский", "абанский", "абанский", "абанский", 
"абанский", "абанский", "абанский", "абанский", 
"абанский", "абанский", "абанский", "абанский", 
"абанский", "абарин", "абарин", "абарин", 
"абарина", "абарин", "абарины", "абарин", 
"абарины", "абарины", "абарчук", "абарчук", 
"абарчуки", "абарчуки", "абарчуки", "абарчук", 
"абарчуки", "абарчуки", "абарчук", "абарчук", 
"абаршалин", "абаршалин", "абаршалин", 
"абаршалина", "абаршалин", "абаршалины", 
"абаршалин", "абаршалины", "абаршалины", 
"абас", "абас", "абасали", "абасалиевна"
)), sorted = "token", row.names = 1000:1100, class = c("data.table", 
"data.frame"))

How can I mutate the lemma column in df2, based on the token column in both df and df2?

This is the result that I expect:

         orientatie    jaar     lemma
1               gay    1980     абагайтуйский
2               gay    1981     абагайтуйский
3               gay    1982     абагайтуйский
4               gay    1983     абагайтуйский
5               gay    1984     абагайтуйский
...

I have tried to use the join function:

df_gelemmatiseerd <- df %>% 
  inner_join(df2, by = "token", relationship = "many-to-many")

But it retrieved me funky result.

Your help is appreciated, thank you!

0

There are 0 best solutions below