当使用 data.table 的 DT[ i , j, by] 时,是否可以预先设置列类型?

2024-04-05

我正在尝试计算多个不同组的两个变量之间的相关性(例如DT[, cor.test(var1, var2), group])。每当我使用时这都非常有效cor.test(var1, var2, method = 'pearson')但当我使用时抛出错误cor.test(var1, var2, method = 'spearman').

library(data.table)
DT <- as.data.table(iris)

# works perfectly 
DT[,cor.test(Sepal.Length,Sepal.Width, method = 'pearson'), Species]
#       Species statistic parameter      p.value  estimate null.value
# 1:     setosa  7.680738        48 6.709843e-10 0.7425467          0
# 2:     setosa  7.680738        48 6.709843e-10 0.7425467          0
# 3: versicolor  4.283887        48 8.771860e-05 0.5259107          0
# 4: versicolor  4.283887        48 8.771860e-05 0.5259107          0
# 5:  virginica  3.561892        48 8.434625e-04 0.4572278          0
# 6:  virginica  3.561892        48 8.434625e-04 0.4572278          0
#    alternative                               method
# 1:   two.sided Pearson's product-moment correlation
# 2:   two.sided Pearson's product-moment correlation
# 3:   two.sided Pearson's product-moment correlation
# 4:   two.sided Pearson's product-moment correlation
# 5:   two.sided Pearson's product-moment correlation
# 6:   two.sided Pearson's product-moment correlation
#                       data.name  conf.int
# 1: Sepal.Length and Sepal.Width 0.5851391
# 2: Sepal.Length and Sepal.Width 0.8460314
# 3: Sepal.Length and Sepal.Width 0.2900175
# 4: Sepal.Length and Sepal.Width 0.7015599
# 5: Sepal.Length and Sepal.Width 0.2049657
#> 6: Sepal.Length and Sepal.Width 0.6525292

# error
DT[,cor.test(Sepal.Length,Sepal.Width, method = 'spearman'), Species]
# Error in `[.data.table`(DT, , cor.test(Sepal.Length, Sepal.Width, method = "spearman"), : 
# Column 2 of j's result for the first group is NULL. We rely on the column types of the first 
# result to decide the type expected for the remaining groups (and require consistency). NULL 
# columns are acceptable for later groups (and those are replaced with NA of appropriate type 
# and recycled) but not for the first. Please use a typed empty vector instead, such as 
# integer() or numeric().

问题:

我知道这个特定示例有解决方法,但可以告诉data.table事先确定在任何情况下使用的列类型是什么DT[i,j,by = 'something']?


如果您想保留所有列,而不是删除带有 NULL 的列,您可以手动设置“问题”列的类(在这种情况下,给出问题的列是“参数”)。如果列确实包含某些组的值但不包含其他组的值,则这比删除 NULL 更可取。

DT[, {
  res <- cor.test(Sepal.Length, Sepal.Width, method = 'spearman')
  class(res$parameter) <- 'integer'
  res
  }, Species]

#      Species statistic parameter      p.value  estimate null.value alternative                          method                    data.name
#1:     setosa  5095.097        NA 2.316710e-10 0.7553375          0   two.sided Spearman's rank correlation rho Sepal.Length and Sepal.Width
#2: versicolor 10045.855        NA 1.183863e-04 0.5176060          0   two.sided Spearman's rank correlation rho Sepal.Length and Sepal.Width
#3:  virginica 11942.793        NA 2.010675e-03 0.4265165          0   two.sided Spearman's rank correlation rho Sepal.Length and Sepal.Width
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当使用 data.table 的 DT[ i , j, by] 时,是否可以预先设置列类型? 的相关文章

  • 从 n,k 维矩阵数组中减去 n,k 维矩阵

    如果我有一个数组A A lt array 0 c 4 3 5 for i in 1 5 set seed i A i lt matrix rnorm 12 4 3 如果我有矩阵 B set seed 6 B lt matrix rnorm
  • R中的字典数据结构

    在 R 中 我有 例如 gt foo lt list a 1 b 2 c 3 如果我输入foo I get a 1 1 b 1 2 c 1 3 我怎样才能看透foo仅获取 键 列表 在这种情况下 a b c R 列表可以具有命名元素 因此可
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • 正态分布平均值的贝叶斯推理玩具 R 代码 [降雪量数据]

    我有一些降雪观测 x lt c 98 044 107 696 146 050 102 870 131 318 170 434 84 836 154 686 162 814 101 854 103 378 16 256 我被告知它遵循正态分布
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • picker输入字体或背景颜色

    我在闪亮的仪表板中使用 pickerInput 这很好 除了一个问题 背景颜色和字体颜色太相似 使得过滤器选择难以阅读 有什么办法可以改变背景或字体颜色吗 如果可能的话 我想继续使用 pickerInput 但如果有一个带有 selectI
  • 如何在 R 中的 for 循环内将值存储在向量中

    我正在开始使用 R 但我对以下问题感到非常沮丧 我试图将 for 循环内完成的某些计算的值存储到我之前定义的向量中 问题是如何进行索引 因为for循环迭代代码的次数取决于用户的输入 所以变量i不一定要从1开始 它可以从80开始 for举个例
  • 更新 R6 对象实例中的方法定义

    如何更新 R6 类实例的方法定义 正如我所期望的 S3 使用当前的方法定义 对于 R5 参考类 我可以使用 myInstance myInstance copy 在 R6 中 我尝试了 myInstance myInstance clone
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 在网格中制作一个矩形图例,并标记行和列

    我有一个 ggplot 我将因子映射到填充和 alpha 如下所示 set seed 47 the data lt data frame value rpois 6 lambda 20 cat1 rep c A B each 3 cat2
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • 从数据框中绘制多条平滑线

    我对 R 比较陌生 我正在尝试绘制从 csv 文件加载的数据框 数据由 6 列组成 如下所示 xval col1 col2 col3 col4 col5 第一列 xval 由一系列单调递增的正整数 例如 10 40 60 等 组成 其他列
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso

随机推荐

  • Shutil make_archive 生成​​嵌套的 .zip 文件 [重复]

    这个问题在这里已经有答案了 我一直在尝试使用make archive https docs python org 3 library shutil html shutil make archive from shutil图书馆 这是代码 带
  • 使用相同的值更新 mysql 表并仍然获得时间戳更新

    所以我有这个stamp timestamp DEFAULT NOW ON UPDATE NOW 行在我的表上 即使我正在执行的更新基本上是所有字段上的相同数据 我也需要它进行更新 在表的声明中是否有任何方法可以做到这一点 就像除此之外的其他
  • 如何向 woocommerce 编辑订单页面添加选项?

    如何在此处添加另一个选项 例如订单操作 订单总计 我知道如何创建选项页面 但不知道如何编辑 woocommerce 选项 有什么办法吗 在 woocommerce 中自定义订单和优惠券非常简单 因为它们只是另一种自定义帖子类型 您可以在其中
  • 是否可以使用 JMS 进行 IBM MQ 消息分段?

    是否可以使用 JMS 实现消息分段 就像使用本机 IBM API 一样此处显示 http www 01 ibm com support docview wss uid swg21405730 我读过的一种可能的解决方案是 JMS 的消息分组
  • 如何修复套索中的“storage.mode(y) <-“double”错误:更改因子的存储模式无效”?

    使用岭回归和套索回归时出现以下错误 storage mode y 我的数据集如下所示 gt as data frame blca only A tibble 315 x 435 Tags TCGA BL A5ZZ 01 TCGA XF AA
  • 如何注释图像分割的基本事实?

    我正在尝试训练一个执行图像分割的 CNN 模型 但如果我有几个 我很困惑如何创建基本事实 图像样本 图像分割可以将输入图像中的每个像素分类为 预定义的类别 例如汽车 建筑物 人或任何其他类别 有没有任何工具或一些好主意来创建地面 图像分割的
  • 如何从ActivatedRoute获取角度5的路线段?

    我正在使用最新的 Angular5 版本 我有以下编码路线 请注意 水果和蔬菜不是参数 fruits item veggies basket 请注意 fruits 是父路由 我在数组中有多个子路由 item 只是其中之一 蔬菜 也是一条父路
  • 如何使用 css 更改 Javafx 中滑块轨道的颜色?

    我有一个音乐播放器 我正在尝试更改滑块轨道颜色 而不仅仅是边框颜色 fx background color 改变边框背景颜色 fx color 更改滑块点 我试过 fx track fill 它不起作用 这就是我所拥有的 root fx b
  • 如何知道程序调用了库的哪些函数

    假设我有二进制库 so 和使用该库的二进制程序 即我不拥有其中任何一个的源代码 如何找出在运行时调用了哪些库函数 我想知道他们的名字 但不需要实时信息 这两个二进制文件都不包含调试符号 The objdump https sourcewar
  • Linux 上的监控/审计文件删除

    我的应用程序部门之一的 beam 文件之一正在被删除 我不确定删除的内容 方式 有没有办法监视或审核文件以查看删除该文件后会发生什么 我正在使用 RedHat 发行版 是的 您可以使用审核守护程序 你没有说哪个 Linux 发行版 基于Re
  • 如果文本不适合框架,如何向 UILabel 添加点

    我有一个带有多行 UILabels 的单元格 但是当文本的标签不适合框架时 不会显示任何点 我怎样才能解决这个问题 你试过这个吗 之前的 Swift 5 yourLabel adjustsFontSizeToFitWidth NO your
  • 从 C++ 托管 dll 引发的 C# 异常 - EEFileLoadException * __ptr64

    我从正常的 C 控制台程序中收到此错误 该程序使用作为 C CLI 项目的构建输出生成的 DLL 那里我有一个简单的DumbThing public ref class用静态方法 我想简单地调用该函数 或者至少实例化一个微小的 DumbTh
  • WebFlux - Reactor Http Epoll 线程

    我正在使用 Spring webflux 我向其余端点发送数百个并发请求 当我检查时 只有 4 个线程被共享来处理所有负载 这是正常的吗 有没有弹簧属性可以增加这个计数 reactor http epoll 1 reactor http e
  • 使用 YAML 元数据块声明用于 pandoc 转换的任意变量

    我最近才发现 Pandoc 所以我仍在习惯它的很多功能 它看起来是一个非常有用的工具 我很高兴能找到它的一些应用程序 我一直在查阅用户指南 虽然有关于我想知道的部分 https pandoc org MANUAL html metadata
  • 拉普拉斯金字塔后的重建图像与原始图像不同

    我正在将 RGB 图像转换为 YCbCr 然后想要计算相同的拉普拉斯金字塔 颜色转换后 我正在尝试使用 OpenCV 图像金字塔教程中给出的代码来找到图像的拉普拉斯金字塔 然后重建原始图像 但是 如果我将代码中的级别数增加到更高的数字 例如
  • RabbitMQ - 升级到新版本并收到很多“PRECONDITION_FAILED Unknown Delivery Tag 1”

    刚刚升级到新版本的 RabbitMQ 2 3 1 现在出现以下错误 PRECONDITION FAILED unknown delivery tag 1 随后通道关闭 这适用于较旧的 RabbitMQ 无需客户端更改 在应用程序行为方面 当
  • Java多态混乱

    下面的问题来自 Kathy Sierra 和 Bert Bates 所著的 Java SCJP5 书籍 给定一个声明为的方法 public static
  • 如何从 Apache POI 获取脚注和段落?

    我有代码可以从 Apache POI 中的 doc 文件获取段落 但我也想获取脚注 另外 这是获取段落的唯一方法吗 到目前为止的代码 InputStream stream HWPFDocument document new HWPFDocu
  • 如何生成基本表单来快速编辑数据库条目?

    有没有一种方法可以在 WinForms 中生成表单或在 WPF 中生成可以在数据库表中插入 编辑条目的窗口 如果不存在捷径 您可以分享您的经验吗 我怎样才能以最少的努力快速完成它 我有一个大型项目 其中我必须花费大量时间对数据库进行建模 我
  • 当使用 data.table 的 DT[ i , j, by] 时,是否可以预先设置列类型?

    我正在尝试计算多个不同组的两个变量之间的相关性 例如DT cor test var1 var2 group 每当我使用时这都非常有效cor test var1 var2 method pearson 但当我使用时抛出错误cor test v