使用 dplyr 将函数应用于 data.frame 中的行

2023-11-26

In base R我会做以下事情:

d <- data.frame(a = 1:4, b = 4:1, c = 2:5)
apply(d, 1, which.max)

With dplyr我可以执行以下操作:

library(dplyr)
d %>% mutate(u = purrr::pmap_int(list(a, b, c), function(...) which.max(c(...))))

如果还有另一列d我需要指定它,但我希望它可以与任意数量的列一起使用。

从概念上讲,我想要类似的东西

pmap_int(list(everything()), ...)
pmap_int(list(.), ...)

但这显然是行不通的。我将如何规范地解决这个问题dplyr?


我们只需要将数据指定为. as data.frame is a list以列作为列表元素。如果我们包裹list(.),它变成一个嵌套列表

library(dplyr)
d %>% 
  mutate(u = pmap_int(., ~ which.max(c(...))))
#  a b c u
#1 1 4 2 2
#2 2 3 3 2
#3 3 2 4 3
#4 4 1 5 3

或者可以使用cur_data()

d %>%
   mutate(u = pmap_int(cur_data(), ~ which.max(c(...))))

或者如果我们想使用everything(),把它放在里面select as list(everything())不涉及应从中选择所有内容的数据

d %>% 
   mutate(u = pmap_int(select(., everything()), ~ which.max(c(...))))

或者使用rowwise

d %>%
    rowwise %>% 
    mutate(u = which.max(cur_data())) %>%
    ungroup
# A tibble: 4 x 4
#      a     b     c     u
#  <int> <int> <int> <int>
#1     1     4     2     2
#2     2     3     3     2
#3     3     2     4     3
#4     4     1     5     3

或者这更有效max.col

max.col(d, 'first')
#[1] 2 2 3 3

Or with collapse

library(collapse)
dapply(d, which.max, MARGIN = 1)
#[1] 2 2 3 3

可以包含在dplyr as

d %>% 
    mutate(u = max.col(cur_data(), 'first'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dplyr 将函数应用于 data.frame 中的行 的相关文章

  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 从 R 主题模型中的 DocumentTermMatrix 中删除空文档?

    我正在使用 R 中的 topicmodels 包进行主题建模 我正在创建一个 Corpus 对象 进行一些基本的预处理 然后创建一个 DocumentTermMatrix corpus lt Corpus VectorSource vec
  • profvis() 何时以及为何显示“源不可用”?

    我经常分析 R 代码 并大量使用 profvis 对于某些函数 浏览器窗口的上半部分会显示源代码 有时则不会 我不知道什么时候会出现这种情况 对我来说这似乎是随机的 有谁知道 profvis 何时以及为什么无法在顶部窗口中显示代码 发生这种
  • 如何从 data.frame 中选择行和列的子集

    我有这个 d d Age gt 2 它返回 Age 超过 2 的所有行 但我只想返回几列中的值 例如 d X 和 d Y 而不是全部 无论如何我可以做到这一点吗 Thanks d d Age gt 2 c X Y
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • 将文本添加到 ggplot 中的轴标签

    我从下表中绘制了一个图表 BoatPhs fit se lower upper 1 Before 3 685875 0 3287521 3 038621 4 333130 2 After0 20NTA 3 317189 0 6254079
  • 如何判断某个软件包是否已经安装?

    当我安装 yaml 包时 如果之前已经安装过 RStudio 则会弹出一条烦人的错误消息 如何判断该软件包是否已安装 以便我可以在代码中决定是否安装该软件包 该消息位于弹出窗口中 内容如下 此安装将更新的一个或多个软件包 当前已加载 在更新
  • 使用 SparkR 1.5 从 RStudio 中的 hdfs 读取大文件(纯文本、xml、json、csv)的选项

    我是 Spark 新手 想知道除了下面的选项之外是否还有其他选项可以使用 SparkR 从 RStudio 读取存储在 hdfs 中的数据 或者我是否正确使用它们 数据可以是任何类型 纯文本 csv json xml 或任何包含关系表的数据
  • R:使用管道将单个参数传递到函数中的多个位置

    我试图专门使用管道来重写以下代码 使用babynames包中的babynames数据 library babynames library dplyr myDF lt babynames gt group by year gt summari
  • R:在 Shiny 中,如何修复应用于“反应性”类对象的“xtable”没有适用的方法

    我收到此错误 Error in UseMethod xtable no applicable method for xtable applied to an object of class reactive UI R library shi
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • 当子集长度为零时,如何简洁地处理子集?

    从向量中排除元素x x lt c 1 4 3 2 我们可以减去位置向量 excl lt c 2 3 x excl 1 1 2 这也是动态工作的 excl lt which x which max x gt quantile x 25 1 2
  • R 中带有边缘箱线图的直方图

    如何使直方图中的 X 轴与边缘箱线图匹配 data lt rnorm 1000 nf lt layout mat matrix c 1 2 2 1 byrow TRUE height c 1 3 layout show nf par mar
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 在 R Shiny 中显示/隐藏整个框元素

    我目前正在尝试找到一种方法来隐藏 显示 R Shiny 中的整个 box 元素 以及里面的所有内容 我想创建一个可能的按钮 它允许用户展开特定框 然后使用相同 甚至不同 的按钮隐藏它 我不想使用条件面板 因为我的应用程序非常大并且会产生一些
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 求解非线性方程组

    我正在尝试求解以下四个方程组 我尝试过使用 rootSolve 包 但似乎我无法通过这种方式找到解决方案 我正在使用的代码如下 model lt function x F1 lt sqrt x 1 2 x 3 2 1 F2 lt sqrt
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD

随机推荐

  • 运行 npm install 时 JSON 输入意外结束

    Closed 这个问题需要调试细节 目前不接受答案 安装时eslint像这样的 npm 包 npm i eslint g 我收到以下错误 npm 错误 解析 coveralls 2 11 4 附近时 JSON 输入意外结束 我怎样才能解决这
  • eval javascript 代码时出现 WatiN 权限问题

    我的环境是 Windows XP IE8 VS2008 WetiN 2 0 20 当我尝试执行以下代码时 IE browser new IE browser GoTo url browser Eval alert hello 我收到以下错误
  • 如何更改 UISearchbar 取消按钮的文本颜色

    我有一个 UISearchBar 如下所示 如何更改取消按钮的文本颜色 这个问题是不久前提出的 因此我认为提出问题的人已经找到了解决方案 但以防万一其他人碰巧遇到同样的问题 这是我的解决方案 我有一个带有取消按钮的 UISearchBar
  • 如何使用多重处理来删除非常大的列表中的重复项?

    假设我有一个包含随机数的巨大列表 L random randrange 0 25000000000 for in range 1000000000 我需要删除此列表中的重复项 我为包含较少数量元素的列表编写了这段代码 def remove
  • 如何防止自定义控件中的工具提示闪烁?

    我制作了一个自定义控件 当满足条件时 我想显示一个工具提示 protected override void OnMouseMove MouseEventArgs e base OnMouseMove e var plannedItem Ge
  • 需要 Redis/NoSQL 概念化方面的帮助

    我认为我很好地掌握了使用 Redis 的所有命令 但我很难找出使用它的最佳方法 我正在设计一个客户通知系统 当任何电路出现警报时 该系统将通过他们的首选方法 电子邮件 SNMP 系统日志 通知他们 因此 我得到了设备名称和端口 我需要将其与
  • Qt:按键事件[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我是 Qt 的初学者 正在实现 keypressevent 我想以这样的方式处理按键 如
  • 使用 epplus 创建 Excel 图表

    这就是我所拥有的 我有一个包含两列的 Excel 工作表 第 1 列包含图例的描述 例如类别 1 类别 2 等 第 2 列包含总计数的数字 例如 6 4 18 等 Category Count Category1 6 Category2 4
  • 从 Java 在 SQL Server 中插入多行[重复]

    这个问题在这里已经有答案了 我需要从 Java 代码将多行插入 SQL Server 数据库 一次 100 行 我怎样才能做到这一点 目前我正在一项一项地插入 这看起来效率不高 您可以使用PreparedStatement addBatch
  • 有没有好的方法来为 swig 接口生成文档?

    我想知道是否有任何好的构建 维护技术 接口上的文档 我正在使用 swig 构建从 c 代码到 python 的接口 大多数时候我只是 包括 c 头文件 我正在处理至少几十个课程 和数百个功能 因此自动化工具是首选 理想情况下 我想在 c 标
  • git:将某些文件的历史记录拆分到单独的分支中

    假设我不久前引入了 现在注意到它不应该是我的一部分main而是一个分支feature 是否可以使用例如git filter branch自动将 的所有历史记录移出我的main分支进入feature branch 听起来你正在做一些相当疯狂的
  • 具有引用参数或匿名函数的 Func / Action 委托

    我只是想知道 确切的语法是如何的ref and out委托和内联 lambda 函数的参数 这是一个例子 如果函数定义为 public void DoSomething int withValue 函数中的委托可以通过以下方式创建 publ
  • 管理员如何访问特定域中所有用户的 Google 云端硬盘内容?

    我正在开发一种工具 可以使用管理员运行的 Admin SDK 自动将 Google Drive 文档的所有权从一个用户转移到另一个用户 我使用数据传输 API 进行所有权转移 我想通过检查传输前后 Google Drive 文档的大小 数量
  • Perl的&&的结果是什么?

    当我尝试这个时 a 1 b 2 print a b n 结果是2 为什么呢 Quote perlop 和 运算符 返回最后评估的值 与 C 的 和 不同 返回 0 或 1 所结果的2Perl 认为是 true 因此当您使用 运算符在逻辑条件
  • 有人可以帮助我使用 RDF/OWL 可视化工具吗?

    我尝试在互联网上搜索 但找不到合适的工具 所以如果有人可以为我提供一个可以解析和显示 RDF 和 OWL 本体图的工具的链接 SemWeb图形表示法 W3C 维护的图形符号和软件应用程序列表 已过时 RDF可视化在 Ontotext 研究空
  • Django 使用 UpdateView 上传文件

    我尝试了通用视图的简约 django 实现来上传个人资料图片 views py class UpdateProfile UpdateView form class UpdateUserProfileForm model UserProfil
  • 出了问题;所有 ROC 指标值均缺失:

    我正在使用插入符包在 R 中训练模型 ctrl lt trainControl method repeatedcv repeats 3 summaryFunction twoClassSummary logitBoostFit lt tra
  • getter 和 setter 被编译器内联的概率

    我的问题很简单 Q Java 中编译器内联 getter setter 方法的可能性有多大 显然对此没有明确的答案 但其他信息将不胜感激 Extra 我知道编译器 标准和 JIT 总是有机会决定内联方法 而当涉及到 getter 和 set
  • 在 google 中添加联系人时出现异常。内部服务器错误

    从今天早上开始 我们在通过 Google API 从 java 插入联系人时收到以下错误 请找到下面的堆栈跟踪 Exception while adding contact in google com google gdata util S
  • 使用 dplyr 将函数应用于 data.frame 中的行

    In base R我会做以下事情 d lt data frame a 1 4 b 4 1 c 2 5 apply d 1 which max With dplyr我可以执行以下操作 library dplyr d gt mutate u p