【发布时间】:2021-06-27 15:55:44
【问题描述】:
我的数据集看起来像这样,其中 ID 和电子邮件对应于一个独特的人。其余列代表由该人/行命名的人。例如,当被问及问题时,ID 为 1 且电子邮件地址为 alex@gmail.com 的人名为 Pete、Jane 和 Tim。
id email john_b alex_a pete jane tim
1 alex@gmail.com NA NA 1 1 1
2 pete@yahoo.com NA 1 1 NA NA
3 jane@q.com NA NA 1 NA 1
4 bea@mail.co NA 1 1 NA NA
5 tim@q.com NA NA 1 NA 1
我需要新的数据集看起来像这样,其中一个新的列提名表示该人/行在数据集的其余部分中被命名的次数。例如,Pete 被 5 个人命名,并在提名列中与相关电子邮件地址所在的行中获得 5。 Jane 被命名过一次(由 alex@gmail.com 命名)并在提名列中获得 1,在 Jane 的电子邮件地址所在的行中。
id email john_b alex_a pete jane tim nomination
1 alex@gmail.com NA NA 1 1 1 0
2 pete@yahoo.com NA 1 1 NA NA 5
3 jane@q.com NA NA 1 NA 1 1
4 bea@mail.co NA 1 1 NA NA 0
5 tim@q.com NA NA 1 NA 1 3
我有一种感觉,我需要在这里结合使用 case-when 和 grepl,但我无法理解它。
感谢您的帮助!
【问题讨论】:
-
请将您的数据作为对象粘贴到
dput(your_data)的问题中;你试过什么代码?这将使那些可能想要帮助测试和验证解决方案的人生活得更轻松。 -
我已经为您的问题发布了答案,如果您能检查一下,我会很高兴。
-
亲爱的 Rakhim,您尝试过我朋友 akrun 建议的代码吗?
标签: r tidyverse tidyr case-when grepl