r - purrr 映射而不是应用
问题描述
我正在尝试在我的代码中加入更多管道。通常,我必须分解管道才能使用 apply 函数。然后我发现了咕噜声。但是,我不清楚它是如何工作的。这是我想要的,也是我尝试过的。主要问题是我想要逐行计算。
想:
apply(mtcars,1,function(x) which.max(x))
有:
mtcars %>% map_dbl(which.max)
解决方案
如果我们需要按行排列,则使用pmap
. 根据?pmap
...请注意,数据框是一个非常重要的特殊情况,在这种情况下 pmap() 和 pwalk() 将函数 .f 应用于每一行。map_dfr()、pmap_dfr() 和 map2_dfc()、pmap_dfc() 分别返回由行绑定和列绑定创建的数据帧。...
pmap_int(mtcars, ~ which.max(c(...)))
#[1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 4 4 3
此外,在 中base R
,这可以很容易地完成并有效地完成max.col
max.col(mtcars, "first")
#[1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 4 4 3
的map
使用类似于lapply/sapply
循环遍历每一列并将函数应用于该列的位置。所以,它会类似于
apply(mtcars, 2, which.max)
推荐阅读
- javascript - JavaScript:如何通过在末尾添加 1、2、3、... 的变量值来循环?
- ios - SwiftUI 对其根视图的一些视图
- pine-script - Tradingview - 使用 pine-script 的“Go to Date”
- scala - scala逗号分隔字符串到双引号逗号分隔字符串
- django - Celery 任务由不同的程序二进制文件执行
- node.js - azure 应用服务中的 cosmosdb 连接失败
- python - 如何从 for 循环中提取元组的所有元素?
- asp.net-mvc - 我可以将配置从 appsettings.json 移动到 ASP.NET Core MVC 应用程序中的数据库吗?
- c - 尝试 malloc 结构指针时出错
- git - 如何检查我的分支离master有多少提交