回收和赋值函数(`split<-`)

2024-02-22

有人可以解释一下这一行 R 代码是如何工作的吗?

split(dat, f) <- lapply(split(dat, f), max)

我以为这只是一个回收规则,但实际上我无法理解。

数据示例:

dat <- c(1, 2, 3, 100, 200, 300)
f <- as.factor(c("a", "a", "b", "a", "b", "b"))
split(dat, f) <- lapply(split(dat, f), max)
dat
[1] 100 100 300 100 300 300

该代码做了我想做的事情(按组分配最大值),但问题是这是如何完成的?


分割给出了值dat[c(1,2,4)] and dat[c(3,5,6)]从向量。

该作业相当于dat[c(1,2,4)] <- 100 ; dat[c(3,5,6)] <- 300这就是回收发生的地方。

Edited

至于发生了什么以及为什么会产生向量分配,请参阅语言定义手册 (http://cran.r-project.org/doc/manuals/R-lang.pdf) 第 21 页。通话:

split(def, f) <- Z

解释为:

‘*tmp*‘ <- def
def <- "split<-"(‘*tmp*‘, f, value=Z)
rm(‘*tmp*‘)

注意split<-.default返回修改后的向量。

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

回收和赋值函数(`split<-`) 的相关文章

  • 将嵌入其他文本的长州名称转换为两个字母的州缩写

    我的目标是识别以具有其他文本的字符向量写出的美国各州 并将各州转换为缩写形式 例如 北卡罗来纳州 到 北卡罗来纳州 如果向量只有长形式的状态名称 那就很简单 但是 我的向量在随机位置有其他文本 如示例 states 中所示 states l
  • 当我创建新变量时出了什么问题?

    我想根据原始变量施加的条件创建一个新变量 比方说 原始变量 var 是由 1 20 中的随机样本组成的向量 并且 当原来的 var 大于10时 新变量 newvar 被设置为缺失 当 var 小于10时 新变量 newvar 被设置为等于
  • 保存 d3heatmap 生成的热图

    我正在尝试保存由d3heatmap https github com rstudio d3heatmap转换为 pdf 文件 但文件总是损坏 library d3heatmap pdf file heat pdf d3heatmap mtc
  • aggregate() 将多个输出列放入矩阵中

    我要计算某个变量的多个分位数 gt res1 lt aggregate airquality Wind list airquality Month function x quantile x c 0 9 0 95 0 975 gt head
  • 如何在Shiny中引用ui.R中的反应元素

    我正在使用 ShinyDND 包制作一个具有拖放功能的应用程序 我想将输入中的列表作为 DragSetUI 的参数传递 该函数需要在 ui R 中运行 我尝试了renderUI和uiOutput 它几乎可以工作 但是拖动的元素无法放置在放置
  • 使用 google 查询邮政编码距离

    我有两个邮政编码列表 R 语言 其中一个是孩子的地址及其学业成绩 另一个是学校的地址 我希望能够为每个孩子找到最近的学校 所以大概需要通过转换为长和纬度值来计算邮政编码之间的距离 然后我希望能够在谷歌地图上绘制每所学校的所有孩子 并看看住在
  • ggplot 中的分层轴?

    我想知道是否可以在 GGLPOT2 或其他图形包 我只是更喜欢 ggplot 中制作分层 分段轴 我想要做的是获取下面的数据 制作一个堆积条形图 其中 x 轴上有周期 但在每个周期内 还有每种动物 那么每只动物内的条形颜色将是 颜色 变量
  • 如何在小插图中的同一 R 包中放置指向另一个小插图的链接

    我有一个关于 Bioconductor 的包 我正在向它添加第二个小插图 我想将第二个小插图链接到第一个小插图 因为一个小插图位于包的一般工作流程上 第二个小插图用于针对更高级的用户的精细参数调整 有没有一种干净的方法来做到这一点 我发现的
  • 从 R 文本中提取网站链接

    我有多个文本 每个文本都可能包含对一个或多个网络链接的引用 例如 text1 s 1212a as www abcd com asasa11 我如何提取 www abcd com 来自 R 中的这段文字 换句话说 我希望提取以www并结束于
  • 查找表中第三个四分位数以上的频率

    我有一个大数据框架 对 57 个变量的超过 239k 观察值 其中包含一些疾病描述以及针对不同年龄段的人针对这些疾病使用的药物 我想在每种疾病描述的使用频率前四分之一中找到这些药物 为了制作一个可重现的示例 我创建了一个包含 1000 个观
  • 如何在函数和循环中使用 data.table?

    在评估效用时data table vs dplyr 一个关键因素是在函数和循环中使用它的能力 为此 我修改了本文中使用的代码片段 data table 与 dplyr 一个可以做得很好而另一个不能做或做得很差吗 https stackove
  • 通过另一个函数将数据和列名称传递给 ggplot

    我将直接跳到一个示例并在后进行评论 cont lt data frame value c 1 20 variable c 1 20 1 20 1 5 1 20 2 group rep c 1 2 3 each 20 value variab
  • 在 R 中绘制决策树(插入符)

    我已经训练了一个数据集rf方法 例如 ctrl lt trainControl method LGOCV repeats 3 savePred TRUE verboseIter TRUE preProcOptions list thresh
  • 如果在循环中调用summary()命令,如何获得它的输出?

    Suppose Z是特征名称的向量 如何让以下 Rscript 中的摘要命令实际打印 for var in Z cat i form paste crim var lm fit lm form data Boston summary lm
  • 获取非零数据的列意味着

    R 可以获得数据帧非零值的 colMeans 吗 data lt data frame col1 c 1 0 1 0 3 3 col2 c 5 0 5 0 7 7 colMeans data 1 33 4 我想要这样的东西 mean dat
  • 在 R 中根据时间序列数据制作 3D 曲面

    我有一个大型数据集 我想从中制作 3D 表面 我希望 x 轴为日期 y 轴为时间 24 小时 z 轴 高度 为我的值 我是 R 初学者 所以越简单越好 http www quantmod com examples chartSeries3d
  • 如何在 Ocaml 中表示一个简单的有限状态机?

    我用 C 和 Java 编写过一些状态机 但从未用过像 Ocaml 这样的函数式语言 问题是我不知道我是否可以从对象语言版本中调整代码 因为在 Ocaml 中记录和变体比类更强大 所以 我需要一个事件驱动的有限状态机 像 UML 中的分层结
  • 从 glmnet 获取变量选择顺序

    我一直在使用 glmnet R 包为一个目标变量 Y 数字 和 762 个协变量构建 LASSO 回归模型 我使用 glmnet 函数 然后coef fit s 0 056360 获取该特定 lambda 值的系数值 我现在需要的是变量选择
  • 在 R 中编写多重积分函数

    为了将以下内容转换为函数 我想知道如何用 R 代码编写以下二重积分 bar x mu 假设pi0 and pi1以向量化方式实现函数 pi 0 和 pi 1 可能的解决方案是 integral lt function n mu s pi0
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq

随机推荐

  • 如何在eclipse中同时调试两个项目?

    我有两个项目 consle 和 android 项目 我想比较变量的值 因为相同的代码 正如我认为的 给出了不同的结果 我必须找到错误 如果我按 F6 按钮 状态只会在一个项目中发生变化 是否可以即时切换调试项目 在两个项目中放置断点并以调
  • 尝试使用类型族来消除具有灵活上下文的重叠实例时出错

    我试图在我正在使用的类型的类型参数上使用一些相当复杂的条件来定义类型类的实例 并且认为一个有用的方法是声明一个封闭的类型系列 该系列在我定义的实例之间进行选择 不幸的是 我根本无法让这个想法发挥作用 因为 GHC 抱怨这些实例是重复的 这是
  • grails-app/utils 目录

    我刚刚注意到的存在grails app utils目录 我从未在任何文档中看到过它 或在项目中使用过 它是在运行时默认创建的create app 知道你应该在那里放什么吗 实用程序 代码是一个明显的猜测 但似乎应该放在src dir 谢谢
  • 扩展 JavaScript 字符串中的 ${var} 引用 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 学习一些超越普通 JavaScript 的东西 我正在读的书告诉我这样的说法 let someVar Happy console
  • 从R中的矩阵中删除对角线元素

    如何使用 R 从矩阵 L 中删除对角元素 diagL 我尝试使用以下内容 subset L select diag L or subset L select c diag L 但我得到了 0 个号码 R 编程语言 我更喜欢C 它更容易拼写
  • 带有事务的 SourcePollingChannelAdapter

    我想使用 SourcePollingChannelAdapter 来实现轮询时需要事务传播 以便在发生错误时回滚所有操作 setTransactionSynchronizationFactory 方法没有注释 非常感谢你的帮助 在 XML
  • Kendo UI 参考在 Razor 视图中不起作用

    我正在尝试创建 Telerik 网格视图 但是当我去参考剑道时它无法识别它 当我尝试引用剑道时 Visual Studio 给出错误 这是代码 Html Kendo Grid 下面是错误 System Web Mvc HtmlHelper
  • MongoDB 的插入安全模式有多安全?

    我正在开发一个项目 其中包含一些重要数据 这意味着如果灯或服务器出现故障 我们不会丢失任何数据 我们使用 MongoDB 作为数据库 我想确保插入后我的数据位于数据库中 如果未插入一个元素 则回滚整个批次 我知道 Mongo 背后的理念是我
  • 在 JCuda 中加载多个模块不起作用

    在jCuda中 可以将cuda文件加载为PTX或CUBIN格式并调用 启动 global 来自 Java 的函数 内核 考虑到这一点 我想使用 JCuda 开发一个框架来获取用户的 device 函数在一个 cu文件在运行时加载并运行它 我
  • log4j2.properties 文件的更改导致 elasticsearch 失败

    我已经安装了elasticsearch 6 6 0 和CentOS 7 我想添加一些用于旋转日志的属性 例如大小为50MB的旋转和压缩 但是 如果我向 etc elasticsearch log4j2 properties 文件添加更多配置
  • LINQ 分组依据表达式语法

    我有一个与此类似的 T SQL 查询 SELECT r id r name count FROM RoomBindings GROUP BY r id r name 我想使用 LINQ 做同样的事情 到目前为止我到达这里 var rooms
  • 链接错误“未定义引用‘__gxx_personality_v0’”和g++[重复]

    这个问题在这里已经有答案了 可能的重复 链接上未定义符号 gxx personality v0 https stackoverflow com questions 203548 undefined symbol gxx personalit
  • 带有母版页的 ASP.Net Web 表单中的 JQuery

    我有一个名为 CoursesPage aspx 的页面 它有一个母版页 在 CoursesPage aspx 中 我在课程名称上使用自动完成 jquery 以便更好地搜索 这是我的脚本代码
  • 如何从命令行启动的 GUI 应用程序写入 StdOut?

    我正在 Delphi 7 中编写一个标准的 Windows 应用程序 如果我正在编写控制台应用程序 我可以调用以下命令来输出到命令行或输出文件 writeln Some info 如果我从从命令行启动的标准 GUI 应用程序执行此操作 则会
  • Rails send_file 不播放 mp4

    我有一个 Rails 应用程序 可以保护上传的视频 将它们放入私人文件夹中 现在我需要播放这些视频 当我在控制器中执行以下操作时 def show video Video find params id send file video ful
  • 使用 Json 比较 C# 对象

    我想比较两个对象而不实现 Equals 方法 以这种方式比较它们的缺点是什么 1 用Json序列化它们 2 结果对比 thanks 以这种方式比较它们有什么缺点 失去速度 将对象转换为 JSON 字符串然后比较它们比通过属性等于属性要慢得多
  • SUM() 基于与 SELECT 不同的条件

    您好 有没有一种方法可以根据与 SELECT 语句其余部分不同的条件进行 SUM total points 计算 所以我想要为 非常感谢您的帮助 SELECT members member id members teamname SUM t
  • 没有这样的桶:/usr/local/Cellar/git

    我已经为此苦苦挣扎了几个小时 我在 Mac 上使用 Yosemite 我安装了自制软件 并且使用 git 就很好 我尝试做 git add i我得到了这个错误 无法在 INC 中找到 Git pm INC 包含 所以我按照这里的说明进行操作
  • E:软件包“libssl1.1”没有安装候选者

    sudo apt get install libssl1 1 正在阅读包裹清单 完成 构建依赖树 完成 读取状态信息 完成 软件包 libssl1 1 不可用 但被另一个软件包引用 这可能意味着该包丢失 已过时或 只能从其他来源获得 E 软
  • 回收和赋值函数(`split<-`)

    有人可以解释一下这一行 R 代码是如何工作的吗 split dat f lt lapply split dat f max 我以为这只是一个回收规则 但实际上我无法理解 数据示例 dat lt c 1 2 3 100 200 300 f l