data.table相关内容

R xts 和 data.table

我可以像处理 data.frame 一样将 data.table 转换为 xts 对象: >df = data.frame(x = c("a", "b", "c", "d"), v = rnorm(4))>dt = data.table(x = c("a", "b", "c", "d"), v = rnorm(4))>xts(df, as.POSIXlt(c("2011-01-01 15:30: ..
发布时间:2022-01-13 19:40:58 其他开发

data.table:当列名未知时创建条件变量的正确方法?

我的问题与创建一个变量有关,该变量依赖于 data.table 中的其他列,而事先不知道任何变量名称. 下面是一个玩具示例,其中我有 5 行,当条件等于 A 时新变量应为 1,否则为 4. 库(data.table)DT 下面的代码有效,但感觉就像我在滥用包! DT[,Col4:=ifelse(DT[[Col1]]=="A",DT[[Col2]],DT[[Col3]]),with=F ..
发布时间:2022-01-13 19:40:48 其他开发

pandas 聚合的条件总和

我最近刚刚从 R 切换到 python,并且在再次习惯数据帧而不是使用 R 的 data.table 时遇到了一些麻烦.我遇到的问题是我想获取一个字符串列表,检查一个值,然后将该字符串的计数相加 - 由用户分解.所以我想把这些数据: A_id B C1:a1“向上"1002:a2“向下"1023:a3“向上"1003:a3“向上"2504:a4“左"1005:a5“正确"102 然后返回: ..
发布时间:2022-01-13 19:40:40 Python

data.table 多列合并

我正在尝试成对匹配 4 个变量并添加具有查找值的列.在基地,我会做 merge(df1,df2, by.x=c("lsr","ppr"),by.y=c("li","pro")),其中 df1 有 9 个 cols 和 df2(2 个是 lsr 和 pro)df2只有 3 个,li,pro,以及我感兴趣的“值",alpha. 这很好用,但是当我开始成为 data.table 的忠实粉丝时,我想 ..
发布时间:2022-01-13 19:40:33 其他开发

我在 data.table 中复制行的方式有效吗?

我在一个 data.table 中有月度数据,在另一个 data.table 中有年度数据,现在我想将年度数据与月度中的相应观察值相匹配数据. 我的做法是:复制每个月的年度数据,然后加入月度和年度数据.现在我有一个关于行重复的问题.我知道该怎么做,但我不确定这是否是最好的方法,所以一些意见会很棒. 这是我的年度数据以及我目前如何复制的示例性 data.table DT: 库(data ..
发布时间:2022-01-13 19:40:26 其他开发

使用 data.table 标记组中的第一条(或最后一条)记录

给定一个排序键,是否有一个 data.table 快捷方式可以复制 SAS 和 SPSS 中的 first 和 last 功能? 下面的行人方法标记了一组的第一个记录. 鉴于 data.table 的优雅(我正在慢慢熟悉它),我假设有一个使用自连接 & 的快捷方式.mult,但我仍在努力解决. 示例如下: require(data.table)set.seed(123)n ..
发布时间:2022-01-13 19:40:03 其他开发

将大量数据从长格式重塑为宽格式的有效方法 - 类似于 dcast

这个问题与创建“宽"表有关,类似于您可以使用 reshape2 中的 dcast 创建的表.我知道这已经讨论过很多次了,但我的问题是关于如何让这个过程更有效率.我在下面提供了几个示例,这些示例可能会使问题看起来很冗长,但其中大部分只是用于基准测试的测试代码 从一个简单的例子开始, >z 我们需要创建一个“宽"表,该表将 col4 列的值作为列名,并将 sum(col3) 的值作为 co ..
发布时间:2022-01-13 19:39:57 其他开发

遍历 data.table 中的列并转换这些列

我有一个 data.table DT,其中有一列名为 RF 和许多列,其中包含下划线 _.我想用一个循环遍历所有这些列下划线并从中减去 RF 列.但是,我被困住了.似乎 RHS 上的所有内容data.table 中的 := 运算符不适用于动态变量. 这是我的 DT 和所需的输出(硬编码): 库(data.table)DT 但是,我希望它更灵活,即遍历名称中带有“_"的每一列并减去 RF ..
发布时间:2022-01-13 19:39:50 其他开发

理解 R 中 data.table 中的 .I

我在玩 data.table 时遇到了一个我不确定我是否完全理解的区别.给定以下数据集: 库(data.table)设置种子(400)DT 能否请您解释一下以下表达式之间的区别? 1) DT[J("E"), .I] 2) DT[ , .I[x == "E"] ] 3) DT[x == "E", .I] 解决方案 set.seed(400)库(数据表)DT 1) ..
发布时间:2022-01-13 19:39:43 其他开发

是否可以就地(破坏性地)修改 data.frame?

似乎可以将一列添加/删除到 data.table 就地,即不复制所有其他列到新表中. 有没有可能用香草做到这一点 data.frame? PS.我知道如何“按功能"添加/删除列,即在不修改原始框架的情况下创建新框架. 解决方案 您可以通过引用 data.table::setdata.frame 中删除或修改现有列/代码>.我怀疑您可以在不复制的情况下添加一列.您可以将列添加到 ..
发布时间:2022-01-13 19:39:33 其他开发

在列的子集 (.SDcols) 上应用函数,同时在另一列(组内)上应用不同的函数

这与将通用函数应用于 data.table 的多个列的问题非常相似,该问题与 .SDcols 在这里彻底回答了. 不同之处在于我想同时在不属于 .SD 子集的另一列上应用不同的函数.我在下面发布了一个简单的示例来展示我解决问题的尝试: dt = data.table(grp = sample(letters[1:3],100, replace = TRUE),v1 = rnorm(100) ..
发布时间:2022-01-13 19:39:25 其他开发

使用 .I 返回带有 data.table 包的行号

有人可以向我解释一下 .I 用于返回 data.table 的行号的正确用法吗? 我有这样的数据: require(data.table)DT 我想返回一个行索引向量,其中 i 中的条件为 TRUE,例如哪些行的 X 大于 20. DT[X >20]# 第 4 行 &5 大于 20 为了获取索引,我尝试了: DT[X >20, .I]# [1] 1 2 ...但显然我做错了,因 ..
发布时间:2022-01-13 19:39:20 其他开发

通过使用多核和并行编程加速 data.table 组

我的代码很大,聚合步骤是当前速度方面的瓶颈. 在我的代码中,我希望加快数据分组步骤的速度.我的数据的 SNOTE(简单的非平凡示例)如下所示: 库(data.table)a = 样本(1:10000000, 50000000, 替换 = TRUE)b = 样本(c("3m","2m2d2m","3m2d1i3s2d","5m","4m","9m","1m"), 50000000, 替换 = ..
发布时间:2022-01-13 19:39:11 其他开发

为什么在 2012 年 python 中的 pandas 合并比 R 中的 data.table 合并更快?

我最近遇到了 Python 的 pandas 库,根据 这个基准 执行非常快的内存合并.它甚至比 R 中的 data.table 包还要快(我选择的分析语言). 为什么 pandas 比 data.table 快这么多?是因为 python 比 R 具有固有的速度优势,还是有一些我不知道的权衡?有没有一种方法可以在 data.table 中执行内部和外部联接,而无需使用 merge(X, Y ..
发布时间:2022-01-13 19:39:02 Python

直接在 ggplot2 中创建比例 geom_area 图

我想创建一个比例 geom_area 图.我认为必须有可能直接在 ggplot2 中执行此操作,而不是事先计算总数和比例.我创建了一个最小的工作示例,它显示了我现在得到的. 库(data.table)图书馆(dplyr)图书馆(动物园)dt 我想将所有内容缩放到 0 到 1 的空间并让它完全填满. 解决方案 如果我没看错的话,你只需要在 geom_area() 中加上 positio ..
发布时间:2022-01-13 19:38:56 其他开发

R data.table 带有一对列的重复行

data.table 非常有用,但我找不到解决以下问题的优雅方法.那里有一些更接近的答案,但没有一个能解决我的问题.假设下面是 data.table 对象,我想根据基因对(Gene1 和 Gene2)过滤重复行,但两种方式都可以. Gene1 Gene2 Ens.ID.1 Ens.ID.2 CORR1: FOXA1 MYC ENSG000000129.13.ENSG000000129.11 0 ..
发布时间:2022-01-13 19:38:51 其他开发

从 Wide 转换为 Long 而不对列进行排序

我想将数据帧从宽格式转换为长格式. 这是一个玩具示例: mydata 有些变量会保持原样(这里只有 ID),有些会被转换为长格式(这里是所有其他变量,都以 _1、_2 或 _7 结尾) 为了将其转换为长格式,我使用了 data.table melt 和 dcast,这是一种能够自动检测变量的通用方法.也欢迎其他解决方案. 库(data.table)设置DT(我的数据)idvar ..
发布时间:2022-01-13 19:38:35 其他开发

在 data.table 中将 tail 与 by 结合

按因子获取 data.table 尾行的最佳方法是什么? 说我有: >dt dt类别值1:一个 12:一23:乙 34:乙45:乙 5 我想得到这个,但我不确定最有效的方法: 类别值1:A 22:乙 5 解决方案 我们可以使用las ..
发布时间:2022-01-13 19:38:25 其他开发