是否有相当于 Stata 的 egen 函数? [复制]

2023-11-24

Stata 有一个非常好的命令,egen,这使得计算观察组的统计数据变得容易。例如,可以计算每个组的最大值、平均值和最小值,并将它们作为变量添加到详细数据集中。 Stata 命令是一行代码:

by group : egen max = max(x)

我从来没有在 R 中找到相同的命令。summarise in the dplyr包可以轻松计算每个组的统计数据,但随后我必须运行一个循环将统计数据与每个观察结果关联起来:

library("dplyr")
N  <- 1000
tf  <- data.frame(group = sample(1:100, size = N, replace = TRUE), x = rnorm(N))
table(tf$group)
mtf  <- summarise(group_by(tbl_df(tf), group), max = max(x))
tf$max  <- NA
for (i in 1:nrow(mtf)) {
  tf$max[tf$group == mtf$group[i]]  <- mtf$max[i]
}

有人有更好的解决方案吗?


以下是一些方法:

dplyr

library(dplyr)

tf %>% group_by(group) %>% mutate(max = max(x))

ave

这仅使用 R 的基数:

transform(tf, max = ave(x, group, FUN = max))

数据表

library(data.table)

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

是否有相当于 Stata 的 egen 函数? [复制] 的相关文章

随机推荐

  • 从 Java 文本文件中读取特定行

    有没有什么方法可以从文本文件中读取特定行 在 API 或 Apache Commons 中 就像是 String readLine File file int lineNumber 我同意它的实现很简单 但它的效率不是很高 特别是如果文件很
  • 在 lapply/ldply 的列表中使用对象名称

    在试图回答时一个问题早些时候 我遇到了一个看起来应该很简单的问题 但我无法弄清楚 如果我有一个数据框列表 df1 lt data frame a 1 3 x rnorm 3 df2 lt data frame a 1 3 x rnorm 3
  • Span 文本更改上的 MutationObserver 不会触发

    这只是一个简单的例子 而不是实际情况 MutationObserver 仍然没有触发 所以我对其工作原理的假设是错误的 JSFiddle function var editButtonVisibility function console
  • 图像上缩进的透明箭头/三角形

    我想做一个图像上的透明箭头 该三角形应在半透明块中缩进并显示背景图像 期望的输出 barShow background color 000 opacity 0 5 barShow before top 0 left 50 border so
  • 如何在 Markdown 中的文本上应用颜色

    我想使用 Markdown 来存储文本信息 但快速谷歌搜索显示 Markdown 不支持颜色 另外 Stack Overflow 不支持颜色 与 GitHub markdown 的情况相同 有没有允许彩色文本的 Markdown 风格 TL
  • TypeError:只有长度为 1 的数组可以使用 NUMPY 转换为 Python 标量

    coding utf 8 import matplotlib pyplot as plt import numpy as np import math task 2e x np linspace 0 0001 0 1 50 constant
  • .rpt设计时如何使水晶报表页面宽度变大

    我正在寻找一种调整页面宽度大小的方法 Crystal Reports 使我可以将字段放置在 rpt 文件中 到目前为止 我发现如果右键单击报告 选择 设计 打印机设置 我可以选择要打印报告的纸张尺寸 如果我选择 方向 横向 我可以增加页面的
  • 使用 prism.js 突出显示 html

    我似乎无法使用 prism js 突出显示 html 因为它删除了仅打印文本的标记 pre 标签内的以下代码仅显示为文本 我将 代码 标签的类设置为 语言标记 table class data table tr td Title td td
  • 将 foreach 与 LINQ to Entities 结合使用时是否需要 ToList

    我有一个关于 LINQ 如何与foreach通过实体框架中的可查询实体 做哪一个更好 更快 foreach var thing in myentities GetThemAll or foreach var thing in myentit
  • 重定向根 URL - IIS 7

    我的网站上安装了一些论坛http ironnoob com forums 我的网站位于 c IronNoob 我的论坛安装在 c IronNoob forums 我希望 ironnoob com 和 www ironnoob com 都进行
  • 如何在docker容器中伪造cpu架构?

    当我创建 32 位 CentOS 5 docker 映像时 我希望 cpu 架构报告为 i386 i686 安装程序在此容器检查架构中进行测试并安装 64 位二进制文 件而不是 32 位 我设置了 yum 变量并创建了 uname 包装器
  • 批处理文件中删除特定扩展名的文件

    我想递归删除批处理文件中具有特定扩展名的所有文件 我知道以下命令 del s ext 但是 这在 Windows 上也会删除具有其他扩展名的文件 例如 ext1 或 ext2 其原因似乎是此类文件的 8 3 文件名以 ext 结尾 因此扩展
  • 实体框架 EF.Functions.Like 与 string.Contains

    我正在阅读实体框架核心2 0的公告https blogs msdn microsoft com dotnet 2017 08 14 announcing entity framework core 2 0 它说他们添加了新的 Sql 函数
  • 下拉 onchange 调用 PHP 函数

    我尝试使用下面的代码从下拉菜单中调用 PHP 函数 有没有一种干净的方法可以做到这一点 code section section
  • AngularJs 单元测试 - 嘲笑承诺不执行“然后”

    我们正在对控制器进行单元测试 我们已经成功模拟了对 REST 服务层的调用 并验证了它确实是使用给定的数据进行调用的 然而现在我们想在我们的控制器中测试then承诺改变location path 控制器 function app contr
  • Python字典迭代器性能

    在 Python 中使用字典时 这一页表示迭代字典元素的时间复杂度是O n where n是字典的最大尺寸 但是 我认为没有一种明显的方法可以迭代哈希表的元素 我可以假设性能良好吗dict iteritems 当迭代哈希表的元素时 没有太多
  • Alamofire POST 请求有进度

    我正在使用 Alamofire 执行 POST 请求 由于此 POST 请求可能需要一段时间 并且我想跟踪进度并将其显示为 ProgressView Alamofire request POST ApiLink create post pa
  • 在一台几乎相同的机器上获取“ld:未找到架构 x86_64 clang 的符号”

    我已经研究了两天 搜索了互联网的各个角落 但找不到任何解决方案 目前 当我尝试在 M1 Max 上构建 React Native Xcode 项目时 我得到ld symbol s not found for architecture x86
  • git中的文件和目录被修改后如何恢复权限?

    我有一个 git 结帐 所有文件权限都与 git 认为应有的权限不同 因此它们都显示为已修改 在不触及文件内容的情况下 只想修改权限 如何将所有文件权限设置为 git 认为应该的权限 Git 会跟踪文件权限并在使用创建补丁时公开权限更改gi
  • 是否有相当于 Stata 的 egen 函数? [复制]

    这个问题在这里已经有答案了 Stata 有一个非常好的命令 egen 这使得计算观察组的统计数据变得容易 例如 可以计算每个组的最大值 平均值和最小值 并将它们作为变量添加到详细数据集中 Stata 命令是一行代码 by group ege