聚合的意外输出

2024-01-11

在尝试时aggregate另一个问题here https://stackoverflow.com/questions/14434632/find-frequency-of-each-unique-column-in-a-matrix-or-data-frame/14436500#14436500,我遇到了一个相当奇怪的结果。我无法弄清楚为什么,并且想知道我所做的是否完全错误。

假设,我有一个data.frame像这样:

df <- structure(list(V1 = c(1L, 2L, 1L, 2L, 3L, 1L), 
                     V2 = c(2L, 3L, 2L, 3L, 4L, 2L), 
                     V3 = c(3L, 4L, 3L, 4L, 5L, 3L), 
                     V4 = c(4L, 5L, 4L, 5L, 6L, 4L)), 
                  .Names = c("V1", "V2", "V3", "V4"), 
        row.names = c(NA, -6L), class = "data.frame")
> df
#   V1 V2 V3 V4
# 1  1  2  3  4
# 2  2  3  4  5
# 3  1  2  3  4
# 4  2  3  4  5
# 5  3  4  5  6
# 6  1  2  3  4

现在,如果我想输出一个data.frame with 独特的行还有一列表明它们的频率df。对于这个例子,

#   V1 V2 V3 V4 x
# 1  1  2  3  4 3
# 2  2  3  4  5 2
# 3  3  4  5  6 1

我使用获得此输出aggregate通过如下实验:

> aggregate(do.call(paste, df), by=df, print)

# [1] "1 2 3 4" "1 2 3 4" "1 2 3 4"
# [1] "2 3 4 5" "2 3 4 5"
# [1] "3 4 5 6"
#   V1 V2 V3 V4                         x
# 1  1  2  3  4 1 2 3 4, 1 2 3 4, 1 2 3 4
# 2  2  3  4  5          2 3 4 5, 2 3 4 5
# 3  3  4  5  6                   3 4 5 6

所以,这给了我粘贴的字符串。所以,如果我要使用length代替print,它应该给我出现这种情况的次数,这是期望的结果,就是这种情况(如下所示)。

> aggregate(do.call(paste, df), by=df, length)
#   V1 V2 V3 V4 x
# 1  1  2  3  4 3
# 2  2  3  4  5 2
# 3  3  4  5  6 1

这似乎有效。然而,当data.frame尺寸为4*2500,输出data.frame是 1*2501 而不是 4*2501(所有行都是唯一的,因此频率为 1)。

> df <- as.data.frame(matrix(sample(1:3, 1e4, replace = TRUE), nrow=4))
> o <- aggregate(do.call(paste, df), by=df, length)
> dim(o)
# [1]    1 2501

我用较小的 data.frames 进行了测试,只有唯一的行,它给出了正确的输出(改变nrow=40, 例如)。然而,当矩阵的维度增加时,这似乎不起作用。我就是不明白出了什么问题!有任何想法吗?


这里的问题是如何aggregate.data.frame()确定组。

In aggregate.data.frame()有一个循环形成分组变量grp。在那个循环中,grp通过以下方式更改/更新:

grp <- grp * nlevels(ind) + (as.integer(ind) - 1L)

你的例子的问题如果有一次by转换为因子,循环结束all在你的例子中,这些因素grp最终是:

Browse[2]> grp
[1] Inf Inf Inf Inf

本质上,循环更新推动了grp到一个无法区分的数字Inf.

这样做之后,aggregate.data.frame()稍后会这样做

y <- y[match(sort(unique(grp)), grp, 0L), , drop = FALSE]

这就是之前的问题现在表现为

dim(y[match(sort(unique(grp)), grp, 0L), , drop = FALSE])

because

match(sort(unique(grp)), grp, 0L)

显然只返回1:

> match(sort(unique(grp)), grp, 0L)
[1] 1

因为只有一个唯一值grp.

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

聚合的意外输出 的相关文章

  • 使用 kableExtra 增加行/行间距

    有没有办法在 r markdown 或 bookdown 中使用 kableExtra 增加 pdf 输出的行间距 library knitr library kableExtra kable head iris 5 caption Iri
  • 使用“kde”函数进行 R 中的 5-D 核密度估计

    我想通过使用 R 的 ks 库中的 kde 函数来执行 5 维数据 x y z 时间 大小 的核密度估计 在它的手册中 它说它可以执行核密度估计1 至 6 维数据 手册第 24 页 http cran r project org web p
  • 如何禁用“保存工作区图像?” R 中的提示?

    当我退出交互式 R shell 时 它每次都会显示一个烦人的提示 gt gt Save workspace image y n c n 我总是对此回答 不 因为如果我想保存我的工作 我就会这么做before试图退出 如何去掉这个提示呢 No
  • 根据用户输入将 n 个反应式单选按钮添加到闪亮的应用程序

    我正在尝试创建一个闪亮的应用程序 用户可以在其中从数据框中选择变量以便对数据进行子集化 输出 最终 将是包含用户子集的数据表 我需要根据用户为子集选择的变量数量创建 n 个输入框 理想情况下 输入框将是动态单选按钮 用于子集因子 我还没有开
  • 替换因子列中的

    我想更换
  • 如何很好地注释 ggplot2(手册)

    Using ggplot2我通常使用geom text和类似的东西position jitter注释我的情节 然而 对于一个漂亮的情节 我经常发现手动注释是值得的 像下面这样 data2 lt structure list type str
  • 提取模型摘要并将其存储为新列

    我是新来的purrr范例并正在努力解决它 根据一些来源 我已经设法嵌套一个数据框 在嵌套数据上运行线性模型 从每个 lm 中提取一些系数 并为每个 lm 生成摘要 我想做的最后一件事是从摘要中提取 r squared 我原以为这将是我想要实
  • 有什么方法可以访问 makeActiveBinding 安装的函数吗?

    标题基本上说明了一切 如果我这样做 makeActiveBinding x function runif 2 GlobalEnv x 1 0 7332872 0 4707796 x 1 0 5500310 0 5013099 那我有什么办法
  • R + ggplot2 - 无法分配大小为 128.0 Mb 的向量

    我有一个 4 5MB 9 223 136 行 的文件 其中包含以下信息 0 0 0 0147938 3 67598e 07 0 0226194 7 35196e 07 0 0283794 1 10279e 06 0 033576 1 470
  • dplyr::mutate 添加多个值

    网上有几个与此相关的问题dplyr Github 存储库 https github com hadley dplyr已经 并且至少有一个相关的问题 但没有一个问题完全涵盖了我的问题 我认为 在 dplyr mutate 调用中添加多列 ht
  • 在 R 中查找 Windows 用户名

    有没有办法在 R 会话中获取当前的 Windows 用户名或 Windows 主目录 Thanks 抱歉 如果我错过了什么 但我找不到任何东西 你可以做 Sys getenv USERNAME Sys getenv HOME 如果你只是输入
  • knn-相同的k,不同的结果

    我有一个矩阵ZZ 我跑完之后prcomp并选择了我收到的前 5 台电脑data new P prcomp zz data new P x 1 5 然后我分成训练集和测试集 pca train data new 1 121 pca test
  • 如何在 R 中更新和重新编译 nlme 源代码

    我正在尝试更新 nlme 包 以便我可以在 gls 命令中使用大圆距离进行相关性 我正在尝试使用指定的更改来编辑源代码here http r 789695 n4 nabble com nlme spatial autocorrelation
  • 重叠并固定小平面中的 x 尺度(尺度=“自由”)以制作电影

    在另一篇文章中 Justin 的帮助下 我用以下方法绘制了模拟结果facet gridggplot2 中的选项 包含数据和答案的帖子在这里 使用facet grid选项通过ggplot2绘制数据框的列 https stackoverflow
  • 基于多列重新编码数据框列[重复]

    这个问题在这里已经有答案了 如何根据其他列的值重新编码列 假设我有以下数据框 我想重新编码df Col3使得该值为 0 如果df Col1 x and df Col2 a gt df lt data frame a c rep x 3 re
  • 使用 data() 的 R 包命名空间问题 -- 找不到数据集

    我在尝试在我自己的包中导入包 即 robfilter 时遇到了问题 我尝试使用它的方法之一 adore filter 在这一行失败 data critvals 出现错误 未找到数据集 critvals 如果我通过 require robfi
  • R 中带有变音符号的字符列表

    我试图将字符串中的电话 字符 出现次数制成表格 但变音符号单独作为字符制成表格 理想情况下 我有一个国际音标的单词列表 其中包含大量变音符号以及它们与基本字符的几种组合 我在这里给出了仅包含一个单词的 MWE 但对于单词列表和更多类型的组合
  • Sweave + RweaveHTML:cat 输出未出现在输出中

    我对 Sweave RweaveHTML 有疑问 我希望 cat 的输出最终出现在正在生成的 html 文件中 我有一个案例 它没有 我不明白为什么 test function bla bla cat Result is 然后在 Rnw 文
  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • R 比较所有列对的每个值[重复]

    这个问题在这里已经有答案了 我有一个 18x18 的数据框 我想将所有可能的列对相互比较 以便对于每对两列 18 行中的值相互比较 由于我的数据太大 无法放在这里 我写了一个小例子来说明到目前为止我所想到的 gt a lt c 1 18 g

随机推荐

  • jQuery 插件 - 找不到下载链接

    我找不到该插件的下载链接 http plugins jquery com project jgfeed http plugins jquery com project jgfeed 有人可以帮助我吗 我不得不拉起来要找到它 这里有一个链接
  • 如何获取 Google 文档上次编辑日期

    我正在开发一个应用程序 我需要在其中显示谷歌文档上次编辑的日期 快照在这里 https drive google com file d 0B S M4QRpDlyN1VsSXR6Q2t3OUE view usp sharing 我能够通过获
  • Onsen UI 页面导航参数不起作用

    我正在使用 Onsen UI 和 AngularJS 并尝试在 Onsen navigation 上传递一个值 但它不起作用 有什么问题吗 第1页 html
  • PDO 相当于 mysql_client_encoding()?

    PDO 有没有办法检查客户端编码 就像 mysql mysqli 中那样mysql client encoding 在 PHP net 上 它指出可以使用以下命令设置字符集PDO setAttribute e g db gt setAttr
  • BigQuery 获取唯一行

    我有这些行 我想知道如何仅获取按 id unit number 序列号和驱动程序分组的唯一行 但同时获取该行的日期 SELECT id date FROM table GROUP BY id date ORDER BY id date DE
  • 面向消息的协议与面向流的协议之间的区别[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我试图理解之间的区别message oriented and stream oriented协议 我四处搜寻 没有发现两者之间的明确解释或
  • 在控制器内使用警报脚本后返回视图

    这是出于对在 C 代码中管理 JavaScript 的兴趣而提出的问题 而不是讨论这是否是一个好的设计 我开始尝试使用控制器内创建警报这个答案 https stackoverflow com questions 38168512 retur
  • 最大周期子串的正则表达式

    这是后续用于检测周期性字符串的正则表达式 https stackoverflow com questions 38322973 a regex to detect periodic strings noredirect 1 comment6
  • elm 0.19.1 中的当前年份为 4 位数字

    如何使用 ELM 0 19 1 执行一个函数来获取 4 位数字的当前年份 我读过一些内容 但 0 19 1 没有任何效果 签名 getCurrentYear Int 执行 getCurrentYear gt 2020 Edit 也许正在执行
  • 类型错误:__init__() 得到意外的关键字参数“方法”

    好吧 我正在编写一个 Flask 项目 但是当我尝试python manage py 回溯告诉我 Traceback most recent call last File manage py line 5 in
  • 使用 gradle (Android Studio) 和本地 Maven 存储库时无法构建应用程序

    我正在尝试包括图书馆Slik https github com afollestad Silk and Cards UI https github com afollestad Cards UI在我的应用程序中 我使用 android st
  • 将嵌套对象列表非规范化/展平为点分隔的键值对

    如果我的嵌套对象是字典 那就更简单了 但这些是字典列表 例子 all objs1 a 1 b ba 2 bb 3 ba 21 bb 31 c 4 a 11 b ba 22 bb 33 bc h 1 e 2 c 44 我期望以下格式的输出 a
  • 我可以在 UITableviewCell 中使用 viewDidLoad 方法吗?

    我可以用吗viewDidLoad中的方法UITableviewCell 不 你不会在自定义单元类子类 UITableViewCell 中编写 viewDidLoad 它是 UIViewController 的一部分 你有一个名为的方法 vo
  • Chrome 在 z 索引方面是否正在退化(或者我做错了什么)?

    我正在制作的网站的导航作为 3 个选项卡 单击后将显示 3 个相应的内容 我刚刚意识到它不起作用铬22 虽然我 90 确定一年前网站上线时我在 Chrome 上测试过它 但在IE9 and FF16 这是我的问题的摘要 http jsfid
  • 设置android操作栏的背景颜色

    我正在使用兼容性库 v7 进行操作 我只是想将操作栏的颜色 适用于 Android 2 1 及更高版本 尽管我运行 Android 4 4 2 设置为纯色 但颜色不会改变 它保持不变 我也尝试过用颜色创建一个实体可绘制对象 但这也没有改变
  • 使用 libtool 从共享库加载重复的函数名

    我正在尝试创建一个 调试 共享库 即 so 或 dll 文件 该库调用另一个具有与调试库相同的 C API 的 真实 共享库 在本例中 是为了模拟 PKCS 11 API 但是 我遇到了麻烦 调试库的链接映射与真实库的链接映射发生冲突 导致
  • 如何让玩家在路径中移动到另一侧?

    我希望当触摸开始时 玩家 红色圆圈 移动到圆形路径的另一侧 我已经让玩家遵循一条路径 但我还没有在互联网上找到我的问题的答案 override func didMoveToView view SKView player SKSpriteNo
  • 在 Windows 上安装 R Studio 服务器

    是否可以在 Windows 计算机上安装 RStudio Server 我知道如果我使用AMI就可以 但是如果没有AMI我怎么安装它呢 我读过http www r bloggers com rstudio server part 2 pro
  • COM+ 库应用程序的目的是什么?

    创建 COM 应用程序时 向导会提供在库应用程序和服务器应用程序之间进行选择的选项 服务器应用程序在单独的进程中激活 这可用于以廉价的方式将 64 位使用者与 32 位进程内 COM 组件进行互操作 在调用者进程中激活的库应用程序有什么用
  • 聚合的意外输出

    在尝试时aggregate另一个问题here https stackoverflow com questions 14434632 find frequency of each unique column in a matrix or da