R:如何基于行中字段的值添加具有值的列?

问题描述 投票:0回答:1

假设我有这种数据框:

df <- tribble(
  ~ID,~Reply_to_ID, ~author,
  14,  NA,      "John",
  16,  14,      "Jack",
  18,  14,      "John",
  20,  22,      "Annie",
  22,  24,      "Peter",
  24,  16,      "Annie"
)

每个ID对于一条消息都是唯一的每条消息都可以是对另一条消息的回复

[我想要一个额外的列,其中包含邮件作者的姓名。例如,杰克回复14编写的消息"John",然后约翰也回复了他的消息,所以我会有类似[>]

  ~ID,~Reply_to_ID, ~author, ~Replied_to_author,
  14,  NA,      "John", NA,
  16,  14,      "Jack", "John",
  18,  14,      "John", "John",
  20,  22,      "Annie", "Peter",
  22,  24,      "Peter", "Annie",
  24,  16,      "Annie", "Jack"
)

可能,我想使用tidyverse来解决问题。

到目前为止,我尝试过的类似

newDF <- mutate(
  df,
  Reply_to_author = filter(df, .data$id == .data$reply_to_message_id)
)

还有其他东西。我知道我可以通过使用filter(df, id == 14)$author之类的值来获取值,但似乎无法使用mutate为该值创建新列。

希望我已经足够清楚了。

谢谢!

假设我有这种数据框:df

r dplyr tidyverse
1个回答
0
投票

您可以使用match

© www.soinside.com 2019 - 2024. All rights reserved.