不希望原始 data.table 在传递给函数时被修改

2023-11-27

我是以下的粉丝data.table,为满足当前和未来的所有需求编写可重用的函数。

这是我在解决这个问题时遇到的挑战:使用 ggplot2 自动绘制所有 data.table 列的最佳方法

我们将 data.table 传递给函数进行绘图,然后原始 data.table 被修改,尽管我们制作了它的副本以防止这种情况发生。

下面用一个简单的代码来说明:

plotYofX <- function(.dt,x,y) {
  dt <- .dt
  dt[, (c(x,y)) := lapply(.SD, function(x) {as.numeric(x)}), .SDcols = c(x,y)]
  ggplot(dt) + geom_step(aes(x=get(names(dt)[x]), y=get(names(dt)[y]))) + labs(x=names(dt)[x], y=names(dt)[y])
}


> dtDiamonds <- data.table(ggplot2::diamonds[2:5,1:3]); 
> dtDiamonds
   carat     cut color
   <num>   <ord> <ord>
1:  0.21 Premium     E
2:  0.23    Good     E
3:  0.29 Premium     I
4:  0.31    Good     J

> plotYofX(dtDiamonds,1,2); 
> dtDiamonds
    carat   cut color
    <num> <num> <ord>
1:  0.21     4     E
2:  0.23     2     E
3:  0.29     4     I
4:  0.31     2     J

我看过很多关于与使用相关的各种问题的帖子:=在函数内部,但找不到任何可以帮助我解决这个看似很简单的问题。 (当然,我不知道将其转换回什么data.frame以达到预期的结果)


Try:

dt <- copy(.dt)

它应该运作良好。

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

不希望原始 data.table 在传递给函数时被修改 的相关文章

  • R 根据事件更新值

    我最近发布了这个问题 该问题已经与我在笔记本电脑上本地使用的 Mysql 数据库相关 由于我在 Mysql 中没有找到问题的解决方案 其他人似乎也没有找到解决方案 所以我想再次发布它 但现在与 R 相关 我使用带有 RMysql 包的数据库
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • 如何在R中计算文本中的句子数?

    我使用 R 将文本读入readChar 功能 我的目的是测试文本句子中字母 a 出现次数与字母 b 出现次数一样多的假设 我最近发现了 stringr 包 它帮助我对文本做很多有用的事情 例如计算字符数以及整个文本中每个字母出现的总数 现在
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • .wav 文件长度/持续时间,无需读入文件

    有没有办法提取有关 wav 文件长度 持续时间的信息 而无需在 R 中读取文件 我有数千个这样的文件 如果我必须阅读每个文件才能找到其持续时间 那将需要很长时间 Windows 文件资源管理器为您提供了打开 长度 字段的选项 并且您可以查看
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

    使用 dplyr 函数对数据进行过滤 分组和变异的函数 基本管道序列在函数之外工作得很好 这就是我使用真实列名称的地方 将其放入一个函数中 其中列名称是一个变量 并且某些函数可以工作 但有些函数则不能 尤其是 dplyr filter 例如
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt

随机推荐

  • 引发事件(“onchange”)

    我有一个 winform 和一个WebBrowser控件 我正在更改选择 HTML 控件中的选项 webBrowser1 Document GetElementsByTagName select 4 GetElementsByTagName
  • HBITMAP 到 BITMAP 转换

    无法理解这段代码有什么问题 HBITMAP bm 0 BITMAP Bitmap bm HBITMAP LoadImage 0 path IMAGE BITMAP 0 0 LR LOADFROMFILE int error GetObjec
  • Mongodb 对象之间的关系

    我正在尝试使用 mongodb 实现博客文章存储 我有两个域实体 博客文章 和 作者 目前我已将 AuthorId 属性添加到博客文章实体中 这是存储对象之间关系的正确方法吗 我认为这篇文章适合你http www mongodb org d
  • 如何使用 CSS 在悬停时向图像添加工具提示

    我有三个图像 悬停时它们会使用 css 中的 hover 增加大小 当用户将鼠标悬停在图像上时 我还希望出现一个带有图像描述的工具提示 我还应该能够定位工具提示 HTML div class bottle container div cla
  • python calendar.HTMLCalendar

    我想我想使用 python 内置日历模块来创建带有数据的 HTML 日历 我说我认为是因为我可能会想出更好的方法 但现在这有点个人化 我不知道这是否是有意以这种方式使用的 但如果你不能至少让日子变得美好 那么这似乎有点毫无意义 a 这会设置
  • PHP 命名空间和 require

    我需要在主 index php 文件中包含几个文件 我正在使用命名空间 我可以使用 include require 并使文件使用与 index php 相同的命名空间 而不在每个包含的文件中指定命名空间和 use 语句吗 PHP 命名空间范
  • 在 TensorFlow 中对数组进行排序

    假设我在 TensorFlow 中有一个数组 0 12300211 0 51767069 0 13886075 0 55363625 0 47279349 0 50432992 0 48080254 0 51576483 0 8434793
  • 使用 Jasmine 监视没有对象的函数

    我正在使用 Jasmine 并且有一个库 js 文件 其中包含许多不与任何对象关联的函数 即全局函数 我该如何监视这些功能 我尝试使用窗口 文档作为对象 但即使调用该函数 间谍也无法工作 我还尝试将其包装在一个假对象中 如下所示 var f
  • 如何避免单击按钮时的 Page_Load() ?

    我有两个按钮 预览和保存 借助预览按钮 用户可以根据格式查看数据 然后保存 但是 当单击预览时 附加到 ajaxcontrol 日历 的一个文本框将变为空 用户必须在保存之前填写日期 这要怎么处理呢 在预览时单击我获取详细信息以在布局中显示
  • Python 中的按键

    Is it possible to make it appear to a system that a key was pressed for example I need to make A key be pressed thousand
  • 使用 hadoop 运行 jar 时 NoSuchMethodError Sets.newConcurrentHashSet()

    我在用着cassandra all 2 0 7api 与Hadoop 2 2 0
  • 使用zef安装模块后如何编辑模块中的源代码?

    例如 我已经安装了Cro模块 当我运行我的简单代码时 my headers Authorization gt OAuth realm oauth consumer key xxxxxxxxxxxxxxxx oauth nonce 29515
  • 将数组写入 csv python(一列)

    我正在尝试将数组的值写入 python 中的 csv 文件 但是当我在Excel中打开文件时 数据显示在一行中 我想要一列 其中数组的每个成员都是一行 数组 testLabels 的形式为 array deer airplane dog f
  • 如何在 Jekyll 标签插件中获取 Markdown 处理过的内容

    我正在为我的 Octopress 网站开发 Jekyll 标签插件 以帮助我制作 注释 元素 我只是希望能够在我的博客上突出显示一条信息作为旁注 就像这样 问题是 我不知道如何处理此标签的内容 即 Markdown 或 Textile 上面
  • c 中的外部和全局

    谁能告诉我使用有什么特殊要求吗EXTERN or GLOBALC 程序中的变量 如果我从 gloabl 更改为 extern 我看不出像下面这样的程序有任何区别 include
  • 获取流式hadoop程序中的输入文件名

    在用 Java 编写程序时 我可以使用 FileSplit 找到映射器类中的输入文件的名称 当我用Python编写程序 使用流式传输 时 是否有相应的方法可以做到这一点 我在apache上的hadoop流媒体文档中发现了以下内容 请参阅配置
  • 使用 python 3.3 生成并保存 .eml 文件

    我正在尝试使用标准电子邮件库生成电子邮件并将其保存为 eml 文件 我一定不明白 email generator 是如何工作的 因为我不断收到错误 AttributeError str 对象没有属性 write from email imp
  • Python 中的多维/多变量动态时间扭曲 (DTW) 库/代码

    我正在研究时间序列数据 可用的数据是多变量的 因此 对于每个时间实例 都有三个可用的数据点 格式 X 是 Z 这样就会实时生成一个上述格式的时间序列数据 我试图在另一个已经存储的时间序列基础数据中找到这个实时生成的时间序列的良好匹配 其大小
  • 如何在循环数组时向数组添加项目? [复制]

    这个问题在这里已经有答案了 On a foreach循环 似乎 PHP 在开始时读取整个数组 因此如果您突然需要将新项目追加到数组中 循环将不会处理它们 a array 1 2 3 4 5 6 7 8 9 10 foreach a as b
  • 不希望原始 data.table 在传递给函数时被修改

    我是以下的粉丝data table 为满足当前和未来的所有需求编写可重用的函数 这是我在解决这个问题时遇到的挑战 使用 ggplot2 自动绘制所有 data table 列的最佳方法 我们将 data table 传递给函数进行绘图 然后