通过不同的标识符对数据框中的观察结果进行分类

Categorize observations in dataframe by different identifiers

我四处寻找这个问题的解决方案,但似乎找不到。

我使用 rtweet 包从丹麦议员那里提取了推文以访问 Twitter API。我使用 get_gimeline() 来提取数据。

get_timeline(c(politikere), n = 100,  parse = TRUE, since_id = "1315756184247435264", max_id = "1333904927559725056", type = "recent") %>%
  dplyr::filter(created_at > "2020-10-25" & created_at <="2020-12-01")  

现在我想按派对 ID 对不同的 Twitter 用户进行分类,以便进行一些特定的情绪分析。 从 API 调用中,您可以将各种信息输入到 tibble 数据框中,例如“用户 ID”跨越大约 90 个不同的变量。

user_id status_id created_at screen_name text description ...x_i

关键是我想在名为 party_id 的数据集中创建一个新列,并且我想根据每个用户所属的党派为每个用户分配一个新值: 我想创建一个列来标识党派关系。它应该看起来像这样:

user_id status_id created_at screen_name text description party_id
1234346 683901040 2020-11-23 larsen_mc gg.. Danish MP.. Conservatives

我查看了 dplyr 包,但我不太明白如何将相同的值分配给不共享相同标识符的不同行。例如,如果所有保守派议员共享相同的 status_id,使用 inner_join 会更容易一些,但在这种情况下(当然)每个用户都有自己的唯一标识符。

这里是example_data

structure(list(user_id = c("2373406198", "4360080437", "3512158337", 
"746909257", "36910691", "58550919", "279986859", "1225930531", 
"26263965", "2222188479"), status_id = c("1354094283230474241", 
"1354707826317393922", "1354391556900483072", "1347169543853117444", 
"1354866447735005185", "1332633849659088897", "1355522537669734401", 
"1355554489361686530", "1329028442105458688", "1330791375449829376"
), created_at = structure(c(1611676209, 1611822489, 1611747085, 
1610025223, 1611860307, 1606559643, 1612016732, 1612024349, 1605700047, 
1606120363), tzone = "UTC", class = c("POSIXct", "POSIXt")), 
    screen_name = c("jacobmark_sf", "RuneLundEL", "kimvalentinDK", 
    "TommyPetersenDK", "JuulMona", "Blixt22", "JanEJoergensen", 
    "RasmusJarlov", "StemLAURITZEN", "olebirkolesen")), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))

希望这是有道理的

最好的, 古斯塔夫

好的 - 我找到了解决方案!手动制作标识符后(称为 Parti_id),我使用了 tidyverse 包并使用了 left_join():

poldata <- poldata %>%   
 select(screen_name,Parti_id)  
FTtweets <- left_join(tmlpol, poldata, by = "screen_name")