为什么摘要函数每次与 dplyr mutate 一起使用时都会返回相同的值?

2023-11-25

这是一个包含一列用户 ID 的数据框:

> head(df)
       uid
1 14070210
2 14080815
3 14091420

为了便于论证,我想创建一个包含用户 ID 平方根的新列,以及另一个包含用户 ID 哈希值的新列。所以我这样做:

df_mutated <- df %>%
              mutate(sqrt_uid = sqrt(uid), hashed_uid = digest(uid))

... 其中digest() 来自digest 包。

虽然平方根似乎有效,但摘要函数为每个用户 ID 返回相同的值。

> head(df_mutated)
       uid sqrt_uid                       hashed_uid
1 14070210 3751.028 f8c4b39403e57d85cd1698d2353954d0
2 14080815 3752.441 f8c4b39403e57d85cd1698d2353954d0
3 14091420 3753.854 f8c4b39403e57d85cd1698d2353954d0

这对我来说很奇怪。如果没有 dplyr,digest() 函数会针对不同的输入返回不同的值。我对 dplyr 有什么不明白的地方?

Thanks


The digest()函数未矢量化。因此,如果您传入一个向量,您将获得整个向量的一个值,而不是向量的每个元素的摘要。由于它返回一个值,因此该值会为 data.frame 的每一行回收。您可以创建自己的矢量化版本

vdigest <- Vectorize(digest)
df %>% mutate(sqrt_uid = sqrt(uid), hashed_uid = vdigest(uid))
#        uid sqrt_uid                       hashed_uid
# 1 14070210 3751.028 cc90019421220a24f75b5ed5daec36ff
# 2 14080815 3752.441 9f7f643940b692dd9c7effad439547e8
# 3 14091420 3753.854 89e6666fdfdbfb532b2d7940def9d47d

它与您单独传递每个向量元素时得到的结果相匹配

digest(df$uid[1])
# [1] "cc90019421220a24f75b5ed5daec36ff"
digest(df$uid[3])
# [1] "89e6666fdfdbfb532b2d7940def9d47d"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么摘要函数每次与 dplyr mutate 一起使用时都会返回相同的值? 的相关文章

  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 从网络源获取 R 中的数据作为数据框

    我正在尝试使用 RCurl 包将一些空气污染背景数据作为 data frame 直接加载到 R 中 该网站有 3 个下拉框 用于在下载 csv 文件之前选择选项 如下图所示 我试图从下拉框中选择 3 个值 并使用 下载 CSV 按钮将数据作
  • 指定 R 中 hist() 中的 bin 数量?

    我尝试指定垃圾箱的数量hist R为10 如下 gt hist x breaks 10 但垃圾箱的数量并不完全是 10 我尝试了几个其他数量的垃圾箱 结果发生了同样的情况 hist says breaks可以指定 给出直方图单元格数量的单个
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • 在 mac (iMac OSX ) 终端中远程运行脚本(r 脚本)到其他计算机

    我有一个小示例脚本 script p r 如下所示 打算在终端中运行 usr bin Rscript sink output capture txt mn lt mean 1 10 and so on much longer list of
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 从 R 环境中删除对象

    我正在阅读 Hadley 的 Advanced R 在第 8 章中 他说我们可以使用以下方法从环境中删除对象 rm 但是 移除该物体后我仍然可以看到该物体 这是我的代码 e lt new env e a lt 1 e b lt 2 e a
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • r 中的 5 维图

    我正在尝试在 R 中绘制 5 维图 我目前正在使用rgl包以 4 个维度绘制数据 使用 3 个变量作为 x y z 坐标 另一个变量作为颜色 我想知道是否可以使用这个包添加第五个变量 例如空间中点的大小或形状 这是我的数据和当前代码的示例
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 使用 dplyr::filter 的整洁方式是什么?

    使用下面的函数调用foo c b 输出以内联方式显示 正确的写作方式是什么df gt filter x gt x 我已经包含了一个使用的示例mutate以整洁的风格与之对比filter foo lt function variables x
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • R 中的 Websocket

    我设法在 R 中建立到 Mtgox websocket 的连接 规格如下 url https socketio mtgox com mtgox Currency USD https socketio mtgox com mtgox Curr
  • GGPLOT2:如何在 ggplot() 脚本中绘制特定选择

    这是一个名为的大型数据集的峰值P 其中有 10 个优惠 CS 有不同的商店 SHP 具有多个数值 数据集列出了按周排序的它们 WK 2 tm 52 它创建一个大文件 仅前 6 行出现峰值 WK MND CS SHP RevCY RevLY

随机推荐

  • SQL 查找违反 UNIQUE 共同索引的行

    我想在表中的两个 或更多 列上放置唯一索引 但我得到 找到重复的键 如何选择那些导致重复的行 您可以使用Group By and Having为了这 SELECT col1 col2 FROM table GROUP BY col1 col
  • Github:权限被拒绝(公钥),但我收到“您已成功通过身份验证”消息

    我所做的步骤 https help github com articles generate ssh keys 完全遵循 eval ssh agent s Agent pid 31944 ssh add Enter passphrase f
  • 与 Mac 和 Linux 上的 exp 函数的结果略有不同

    以下 C 程序在我的 Mac 和 Linux 上产生不同的结果 我很惊讶 因为我认为实施libm以某种方式标准化 include
  • 使用 Exchangelib 将电子邮件标记为已读

    我正在使用Pythonexchangelib包裹 如何使用 Exchangelib 将电子邮件标记为已读 我已经看过了官方 GitHub Exchangelib 页面对于我的查询 但没有找到答案 要添加到 joe 的评论 您还必须 保存 该
  • Java Spring Boot 中的服务器端渲染 React

    我是服务器端渲染的新手 我想在服务器端渲染 React 组件并以 html 形式传递它 我按照本教程进行操作https spring io guides tutorials react and spring data rest 它仍在客户端
  • .NET 和 C# 初学者书籍? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想做一个项目 使用 NE
  • GUI 元素在调整窗口大小之前不会显示

    我一直在尝试用 java 制作 GUI 而不是一直使用 静态 并遇到了 SwingUtilities invokeLater 方法 我设法完成所有设置 但在运行应用程序时 JPanel 上什么也没有出现 直到我调整窗口大小 有解决这个问题的
  • make:并行运行多个任务并等待完成

    我的 makefile 中的一个目标是一项非常消耗 CPU 和时间的任务 但我可以拆分工作负载并并行运行该任务多次 以加快整个过程 我的问题是 make 不会等待所有进程完成 考虑这个简单的脚本 名为myTask sh bin bash e
  • 通过标准 JDK 11 使用 graalvm

    我有一个项目使用 Nashorn Javascript 引擎 我正在尝试迁移到 java11 并从 Nashorn 迁移到 Graal 我读了here我可以通过从 JDK 11 开始的标准 JDK 安装来使用 graal 此外 我还读到 G
  • CXF 中的格式化 XML 输出?

    我知道如何在使用 Marshaller 时打开格式 但我正在使用 Apache CXF JAX RS 并返回类似的响应return Response ok entity build 我还没有找到任何如何格式化输出的选项 我该怎么做 首先 获
  • 使用给定的步长/步长从 numpy 数组中获取子数组

    假设我有一个 Python Numpy 数组a a numpy array 1 2 3 4 5 6 7 8 9 10 11 我想从这个长度为 5 步幅为 3 的数组创建一个子序列矩阵 因此结果矩阵将如下所示 numpy array 1 2
  • ASP.NET CORE LINUX 获取 CPU 使用情况

    使用此代码 这适用于 Windows 对于 Linux Ubuntu Linux 中未提供 PerformanceCounter PerformanceCounter counter GetPerfCounterForProcessId p
  • 如何在 DirectWrite 中渲染混合颜色文本?

    我想使用 DirectWrite 进行混合颜色文本格式设置 准确地说是语法突出显示 但似乎无法在 布局 或 版式 选项中找到实现此目的的方法 唯一的选择是在渲染文本时传递画笔 这对我不起作用 因为我基本上只有一个布局 帮助 Use IDWr
  • 从标签之间提取文本的有效方法

    假设我有这样的事情 var li a href html Energy a ul li a href html Coal a li li a href html Oil a li li a href html Carbon a li li
  • 如何描述和显示DERBY DB中的表?

    我有这个 SQL 查询 1 show tables 2 desc tablename 但这似乎不是德比中的语法 如何在德比中编写这些查询 我想检查表的架构 无论其是否是主键 如何在 websphere 中检查 通过查询显示表 no IJ s
  • Doxygen 并将属性值添加到输出文档

    服务栈使用 C 属性标记 Web 服务的剩余路径 例如 RestService hello1 RestService hello2 public class Hello 我想让 Doxygen 在 Hello 类的 doxygen 输出中包
  • 在 Angular2 中通过指令更改组件属性

    我有一个 Angular 1 应用程序 可以使用一个简单的contentEditable指令 可以在模板中像这样使用 span 编辑元素会触发 setViewValue element html 它按预期工作 我想用类似简洁的模板语法在 A
  • Swift:将任何对象转换为 Int64 = nil

    我有个问题 我想知道为什么会发生这种情况 var dict String Any intValue 1234 stringValue some text dict intValue as Int64 nil why dict intValu
  • 本机 iOS 应用程序中的连字符

    如何在 iOS 中激活自动连字符 我尝试在 UILabel 的属性文本选项中将连字符因子设置为 1 但是我没有得到任何连字符 iOS 7 方式 使用UITextView而不是UILabel The hyphenationFactor 或者作
  • 为什么摘要函数每次与 dplyr mutate 一起使用时都会返回相同的值?

    这是一个包含一列用户 ID 的数据框 gt head df uid 1 14070210 2 14080815 3 14091420 为了便于论证 我想创建一个包含用户 ID 平方根的新列 以及另一个包含用户 ID 哈希值的新列 所以我这样