如何将自定义多变量函数应用于 R 中数据框的每一行?

2024-04-19

假设我有一个数据框,其中的列名为“foo”和“bar”

mydata <- data.frame(foo=rnorm(100), bar=rnorm(100))

假设我有一个自定义标量函数,它需要标量输入“x”和“y”并产生标量输出,例如

myfunction <- function(x, y) { if (x>0) y else x }

如何将 myfunction 应用于 mydata 的每一行,其中 x 为 foo,y 为 bar?

是的,我知道这个具体示例非常简单,并且可以在 R 中轻松完成,但我对这种模式感兴趣。想象一下 myfunction 非常复杂,并且 myfunction 的变量名称必须映射到列名称上我的数据。一般的解决办法是什么?


mydata <- data.frame(x=rnorm(100), y=rnorm(100))
myfunction <- function(x, y) { if (x>0) y else x }

# with plyr (requires the argument names to match)
plyr::mdply(mydata, myfunction)

# with base functions
with(mydata, mapply(myfunction, x, y))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将自定义多变量函数应用于 R 中数据框的每一行? 的相关文章

  • R:返回数据框中匹配的行数和列数

    emperor lt rbind cbind Augustus Tiberius cbind Caligula Claudius 如何返回包含序列 us 的所有单元格的行号和列号 即 1 1 1 2 2 2 我们可以使用grepl得到一个v
  • R:将多列转换为单列[重复]

    这个问题在这里已经有答案了 我有一个看起来像这样的数据框 ID week1 t week1 a week2 t week2 a 1 12 22 17 4 1 15 32 18 5 1 24 12 29 6 2 45 11
  • 使用 glmnet 和 lm 的普通最小二乘法

    这个问题是在stackoverflow com q 38378118 https stackoverflow com q 38378118但没有得到满意的答复 0 的 LASSO 相当于普通最小二乘法 但对于以下情况似乎并非如此glmnet
  • 在数据帧中的几行上提取具有匹配模式的 id

    这是我正在处理的数据框的示例 id string 1 no 1 yes 1 yes 2 no 2 yes 3 yes 3 yes 3 no 我想提取id为此最后两行包含字符串 yes 对于列string 所以结果是 id string 1
  • 计算回头客

    我正在分析一家商店的销售数据 并希望计算 第一订单客户 在下个月变成回头客的百分比 我有一个包含所有订单的数据框 其中包括客户 ID 日期和标记 如果这是他 她的第一笔订单 这是我的数据 import pandas as pd data N
  • dplyr 中的 if_all 和 if_any 函数未运行

    我正在尝试使用以下方法复制这些示例if all and if any功能但不工作 Erro Problem with filter input 1 x n o foi poss vel encontrar a fun o if all i
  • 有没有办法“source()”并在错误后继续?

    我有一个大型 R 脚本 其中包含 142 个小部分 如果某一部分因错误而失败 我希望脚本继续而不是停止 这些部分不一定相互依赖 但有些部分确实相互依赖 如果中间的一个失败了也没关系 我不想在这个脚本中加入try 来电 而且我不想将文件分成许
  • 删除重复行并计算 R 中数据帧的平均值

    我提供了一个我正在处理 gt 1 000 列和 gt 200 行的大型数据框的小示例 我想让每列的每个重复行成为单行而不是两行 同时取与第 1 列相关的每个值的平均值 平均值的列是第 6 8 列等 Col1 Col2 Col3 Col4 C
  • 如何将 dput() 的输出加载到对象中?

    例如我有这样的代码 structure list mpg c 21 21 22 8 21 4 18 7 18 1 14 3 24 4 22 8 19 2 17 8 16 4 17 3 15 2 10 4 10 4 14 7 32 4 30
  • 控制绘图中 x 轴上出现哪些刻度线/标签?

    我想控制 X 轴上显示的刻度线 以下代码将刻度线放置在 5 的序列中 位于 5 10 15 30 library plotly df lt data frame x 1 30 y sample 100 300 size 30 replace
  • 连接系统 R 中的两个或多个数据帧

    我的问题是如何在 R 系统中连接两个或多个数据帧 例如 我有两个数据框 first x y z 1 3 2 4 2 4 5 7 3 5 6 8 second x y z 1 1 1 1 2 4 5 7 我需要这个 x y z 1 3 2 4
  • 显示函数的完全限定名称

    include
  • 如何在 R 中手动编写正态分布核的似然值?

    具体来说 如何编码 x 和 mu 之差的乘积 精度矩阵以及 x 和 mu 之差的转置 我下面的代码正确吗 提前致谢 colSums dat mu mat solve sigma colSums dat mu mat 其中 mu mat 是重
  • 在 R 中绘制非常大的数据集

    如何在 R 中绘制非常大的数据集 我想使用箱线图 小提琴图或类似的图 内存中无法容纳所有数据 我可以逐步读入并计算制作这些图所需的摘要吗 如果是这样怎么办 作为对我的评论的补充德米特里回答 https stackoverflow com q
  • 删除 ggplot 地图/choropleth 中的边框线

    我想删除 ggplot 中生成的等值线区域之间的线 我的问题是由一张非常大的地图引起的 其中包含非常非常小的区域 人口普查区块组 这些区域数量如此之多 以至于鉴于边界的密度 不可能看到填充形状的颜色 我在 Mac 上使用更新后的 RStud
  • 如何在 pandas 中对复杂条件下的分箱进行旋转

    我有如下数据框 age type days 1 a 1 2 b 3 2 b 4 3 a 5 4 b 2 6 c 1 7 f 0 7 d 4 10 e 2 14 a 1 首先我想根据年龄进行分箱 age 0 4 age type days 1
  • 在 ggplot2 facet_wrap 标签上使用半填充的正方形

    我正在尝试使用标签上的一半 以及四分之一填充 方块来生成 ggplot2 图表 但 Mac 上的 ggplot2 似乎不支持某些符号 例如 当我输入 print u25E9 它显示一个半黑的正方形 但是当我尝试在 ggplot 中使用它时
  • R 对等证书无法使用给定的 CA 证书进行身份验证,Windows

    当尝试使用导入谷歌工作表时gs read 函数 我收到以下错误消息 在curl curl fetch memory url handle handle 中出错 对等 无法使用给定的 CA 证书对证书进行身份验证 我正在关注这个vignett
  • 在 R 闪亮应用程序中评级星星

    我正在尝试向我闪亮的应用程序添加一些元素 以使其看起来更好 因此 我正在使用新的shiny semantic包允许以简单的方式添加语义 UI 元素 人们可以在这里找到闪亮的语义元素的示例 http demo appsilondatascie
  • ShinyApp:由对等方重置连接

    我之前构建的闪亮应用程序在我的旧笔记本电脑上运行良好 最近我买了一台装有Windows10的新笔记本电脑 设置完所有内容后 我尝试运行该应用程序 但浏览器立即打开并关闭 并出现错误 正在收听http 127 0 0 1 5004 http

随机推荐