gpt4 book ai didi

r - dplyr:对不同的组应用不同的功能

转载 作者:行者123 更新时间:2023-12-03 20:20:32 24 4
gpt4 key购买 nike

我是一个初学者,试图使用 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 等价物?

最佳答案

有一个dplyrExtras包含 mutate_if 的软件包功能。

# install dplyrExtras
library(devtools)
install_github(repo="skranz/dplyrExtras")
require(dplyrExtras)
# code using mutate_if
df %>%
mutate(Num2 = Num+1) %>%
mutate_if(Ops=="S", Num2 = Num-1)

关于r - dplyr:对不同的组应用不同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28976438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com