【发布时间】:2023-03-23 12:56:01
【问题描述】:
我是一个尝试使用 dplyr 进行数据分析的初学者。我的数据基本上来自一些操作(“Ops”)并且井井有条。我经常需要根据运算的类型对观察值(“Num”)应用不同的函数,然后将它们组合起来进行分析。
简单的例子如下:
X Num Ops
0 37 S
1 18 R
2 11 S
3 3 R
4 11 S
5 13 R
... ... ...
我想根据值列“Ops”添加一个新列“Num2”,例如:
df %〉% mutate(Num2=ifelse(Ops="S",Num-1, Num+1))
我不确定我是否应该做很多ifelse 分配——感觉多余且效率低下。
必须有更好的解决方案,也许使用“group_by、select、filter”的一些组合。有什么建议吗?
基本上我想弄清楚是否有一种方法可以根据某些标准对数据进行分组,然后将不同的函数应用于不同的子集,最后将结果合并在一起。我发现的典型 dplyr 示例将相同的函数应用于所有子集。
下面的@eddi 使用 data.table 提供了更通用的解决方案。是否有 dplyr 等价物?
【问题讨论】:
-
您可以尝试以下方法:stackoverflow.com/a/19054962/817778
-
感谢您的建议。这些并不是我想要的。基本上我想弄清楚是否有办法根据某些标准对数据进行分组,将不同的函数应用于不同的子集,然后将结果合并在一起。典型的 dplyr 示例将相同的函数应用于所有子集。
-
@eddi 看起来您确实为 data.table 提供了更通用的解决方案。有 dplyr 等价物吗?
-
@Dong 不确定,我不是
dplyr专家
标签: r data.table dplyr