【发布时间】:2021-01-25 14:08:10
【问题描述】:
我无法找到解决问题的正确方法。 我有一个 NBA 数据集,其中列/变量之一是球员的位置。例如,C 代表中锋,SG 代表得分后卫,SG-SF 代表得分后卫/小福拉德。我的目标是为篮球中的每个位置创建 5 个新变量:PG、SG、SF、PF、C,其中球员在新位置列在原始数据集中列出的每一列中的值为 1。
例如,Tyson Chandler 在新的 C 列中为 1,但在 PG、SF、SF 和 PF 中为 0。
我查看了 dpylr 的 mutate 和类似方法,但它们似乎倾向于根据该列中已经存在的数据条件来编辑列,而不是检查不同列中的条件。
我发现的临时解决方法是将数据帧拆分为更小的数据帧,并为每个位置组添加适当的值,然后将子数据帧重新组合到完整的数据帧中。不过,我希望能找到更优雅的解决方案。
谢谢。
【问题讨论】:
-
您对
dplyr::mutate(“根据该列中已存在的数据的条件编辑列”)的解释不正确。虽然dplyr.tidyverse.org/reference/mutate.html 的前几个示例并没有反驳您的说法,但它确实在稍后显示mutate(z = x + y),这就是您要问的。