当使用 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] 时,是否可以预先设置列类型? 的相关文章

  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • 尝试读取 CSV 文件时出现“无法识别的字符串转义”

    我正在尝试导入一个 csv文件 以便我可以观看此视频 R ggplot2 图形直方图 http www youtube com watch v 47kWynt3b6M 我安装了所有正确的软件包 包括ggplot以及相关的包 视频中的第一个说
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

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

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 在 Rcpp 中使用其他包中的 C 函数

    我试图从 C 函数中的 cubature 包调用 C 例程来执行多维积分 我试图重现的基本 R 示例是 library cubature integrand lt function x sin x adaptIntegrate integr
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 如何在 R 中匹配多个 ggplot2 图中的调色板?

    自从被问到这个问题以来已经有一段时间了 但我知道一个事实 我很快就会提取新数据 我想弄清楚如何用这种技术来绘制它 看起来评论和答案中的人知道如何做到这一点 但我无法完全弄清楚所给我的内容 还有人想尝试一下吗 我正在尝试使用具有多个级别的因子
  • 为什么 R 更新后 sim_slopes() 中会出现此错误?

    我正在尝试使用 交互 包来创建简单斜率的约翰逊 尼曼图 但是 当尝试运行 sim slopes 函数时 出现以下错误 直到我将R更新到4 2 2 我才没有遇到这个问题 我使用的是 macOS Ventura 13 1 Error class
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • 删除极坐标图边缘的多余空间和圆环

    我有一个极坐标图ggplot2我已经非常接近完成 相当简单的情节 我已经能够在删除矩形边框方面获得帮助 但我不需要删除最后一个范围轮廓与带有方位角标签的绘图周围的环之间的额外空间 我希望该图的边界为 15 000 而不是 15 214 我编
  • SPSS 中的标准化残差与 R rstandard(lm()) 不匹配

    在寻找 R 相关解决方案时 我发现 R 和 SPSS 版本 24 在计算简单线性模型中的标准化残差方面存在一些不一致 看来SPSS所谓的标准化残差匹配 R学生化残差 我完全不认为某处存在软件错误 但显然这两个程序之间存在差异 看看这个例子
  • 如何绘制具有显着性水平的箱线图?

    前段时间问了一个关于绘制箱线图的问题Link1 https stackoverflow com questions 14604439 plot multiple boxplot in one graph 我有一些包含 3 个不同组 或标签
  • 如何使用 tidymodels 和工作流集在同一数据集上拟合多个不同的线性模型

    我想评估同一数据集上多个 主要是 线性回归模型的性能 我想也许使用tidymodels包连同workflowsets workflow set 可能会起作用 我按照这个例子here https workflowsets tidymodels
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对

随机推荐

  • 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