- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个数据表:DT
和 meta
.当我使用 DT[meta]
合并它们时, 内存使用量增加了 10 GB 以上(合并非常慢)。怎么了?好像合并成功了,但我只能看单行,否则内存不足。 DT
它本身是通过合并两个 data.tables 创建的,没有任何问题。
编辑:
key 好像有问题。我可以毫无问题地执行以下操作:
DT[,id:=1:nrow(DT)]
meta[,id:=1:nrow(DT)]
setkey(DT,id)
setkey(meta,id)
DT2<-DT[meta] # Comment from Matthew Dowle:
# X[Y] (or merge) on a key of 1:nrow(DT) is just a cbind, isn't it?
unique(DT2[,"Moor_ID",with=F]==DT2[,"Moor_ID.1",with=F])
Moor_ID
[1,] TRUE
str(DT)
Classes ‘data.table’ and 'data.frame': 10212 obs. of 55 variables:
$ DWD_ID : chr "Bremerhav" "Bremerhav" "Bremerhav" "Bremerhav" ...
$ numdays : int 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 ...
$ days : Date, format: "2009-09-01" "2009-09-02" "2009-09-03" "2009-09-04" ...
$ TBoden_dayAnzahl : int 0 0 0 0 0 0 0 0 0 0 ...
$ TBoden_dayMin : num NA NA NA NA NA NA NA NA NA NA ...
$ TBoden_dayMax : num NA NA NA NA NA NA NA NA NA NA ...
$ TBoden_dayMeanAR : num NA NA NA NA NA NA NA NA NA NA ...
$ TBoden_dayStabw : num NA NA NA NA NA NA NA NA NA NA ...
$ TBoden_dayMedian : num NA NA NA NA NA NA NA NA NA NA ...
$ TBoden_dayMeanMM : num NA NA NA NA NA NA NA NA NA NA ...
$ T2m_dayAnzahl : int 0 0 0 0 0 0 0 0 0 0 ...
$ T2m_dayMin : num 15.6 13.8 13.7 12.8 13.5 13.1 13.3 13.8 15.9 13.7 ...
$ T2m_dayMax : num 25.6 19.9 18.1 18.1 16.9 18.6 21 25.7 19.3 17.6 ...
$ T2m_dayMeanAR : num 19 16.9 15.6 15.2 14.8 ...
$ T2m_dayStabw : num 3.409 2.048 1.334 1.726 0.965 ...
$ T2m_dayMedian : num 17.2 16.8 15.2 14.8 14.5 ...
$ T2m_dayMeanMM : num 20.6 16.9 15.9 15.4 15.2 ...
$ T10cm_dayAnzahl : int 0 0 0 0 0 0 0 0 0 0 ...
$ T10cm_dayMin : num 14.3 12.6 12.9 12.2 12.7 12 12.8 11.7 15.1 12.2 ...
$ T10cm_dayMax : num 27.7 20.9 18.7 18.7 17.4 19.8 22.4 25.9 21.8 18.6 ...
$ T10cm_dayMeanAR : num 18.7 16.5 14.9 15.1 14.5 ...
$ T10cm_dayStabw : num 4.36 2.84 1.73 2.36 1.54 ...
$ T10cm_dayMedian : num 16.1 15.6 14.3 14.2 14 ...
$ T10cm_dayMeanMM : num 21 16.8 15.8 15.4 15.1 ...
$ RF_dayAnzahl : int 0 0 0 0 0 0 0 0 0 0 ...
$ RF_dayMin : num 45 58 73 56 68 62 63 44 65 58 ...
$ RF_dayMax : num 94 94 94 93 94 92 84 84 89 84 ...
$ RF_dayMean : num 68.6 76.3 78.9 74.4 86.5 ...
$ RF_dayStabw : num 17.09 12.53 5.88 9.83 5.62 ...
$ RF_dayMedian : num 64.5 74 77.5 76 87.5 77.5 75 63 77 76 ...
$ Luftdruck_dayMean : num 100.8 101 99.7 99.9 101.1 ...
$ es_day : num 2.53 1.95 1.82 1.78 1.74 ...
$ ea_day : num 1.57 1.42 1.49 1.27 1.38 ...
$ defi_day : num 0.956 0.535 0.327 0.509 0.355 ...
$ Nebel_dayAnteil : num 0 0 0 0 0 0 0 0 0 0 ...
$ Sonnenscheind_dayAnzahl: int 18 18 18 18 18 18 18 18 18 18 ...
$ Sonnenscheind_daySum : num 6.63 4.93 1.05 5.82 3.27 ...
$ julian_day : int 244 245 246 247 248 249 250 251 252 253 ...
$ zeta_day : num 2.81 2.82 2.84 2.86 2.88 ...
$ maxSonnenscheind : num 13.9 13.8 13.7 13.6 13.5 ...
$ R0_day : num 2920 2890 2860 2830 2799 ...
$ Globalstrahlung_dayMean: num NA NA NA NA NA NA NA NA NA NA ...
$ RG_day : num 13.24 11.19 6.64 12.02 9.03 ...
$ lambdaET_day : num 2.45 2.46 2.46 2.46 2.47 ...
$ sAnstieg_day : num 0.15 0.122 0.116 0.113 0.111 ...
$ gamma_day : num 0.067 0.0669 0.0659 0.0661 0.0668 ...
$ ETp_TW_day : num 2.71 2.15 1.28 2.24 1.68 ...
$ Moor_ID : chr "Ahlenmoor" "Ahlenmoor" "Ahlenmoor" "Ahlenmoor" ...
$ Distanz_in_km : num 24 24 24 24 24 ...
$ North : num 53.5 53.5 53.5 53.5 53.5 ...
$ East : num 8.58 8.58 8.58 8.58 8.58 ...
$ Hoehe_in_m : num 7 7 7 7 7 7 7 7 7 7 ...
$ Kueste_km : num 20 20 20 20 20 ...
$ peatland : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
$ diffmaxt2m : num -1.6 0 -0.2 0.1 -0.4 ...
- attr(*, "sorted")= chr "Moor_ID"
- attr(*, ".internal.selfref")=<externalptr>
str(meta)
Classes ‘data.table’ and 'data.frame': 10212 obs. of 6 variables:
$ Moor_ID : chr "Ahlenmoor" "Ahlenmoor" "Ahlenmoor" "Ahlenmoor" ...
$ Hoehe_Moor : num 2.35 2.35 2.35 2.35 2.35 2.35 2.35 2.35 2.35 2.35 ...
$ Kueste_km : num 15.7 15.7 15.7 15.7 15.7 ...
$ WSPsommer_muGOK: num 0.699 0.699 0.699 0.699 0.699 ...
$ WSPwinter_muGOK: num 0.446 0.446 0.446 0.446 0.446 ...
$ Moorgroesse_km2: num 59 59 59 59 59 59 59 59 59 59 ...
- attr(*, ".internal.selfref")=<externalptr>
- attr(*, "sorted")= chr "Moor_ID"
R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
[5] LC_TIME=German_Germany.1252
attached base packages:
[1] grDevices datasets splines graphics stats tcltk utils methods base
other attached packages:
[1] reshape_0.8.4 plyr_1.7.1 data.table_1.8.0 svSocket_0.9-53 TinnR_1.0-5 R2HTML_2.2 Hmisc_3.9-3
[8] survival_2.36-14
loaded via a namespace (and not attached):
[1] cluster_1.14.2 grid_2.15.1 lattice_0.20-6 svMisc_0.9-65 tools_2.15.1
最佳答案
我的错。问题是键不是唯一的:
a<-data.table(x=c(1,1),y=c(1,2))
b<-data.table(x=c(1,1),y=c(3,4))
setkey(a,x)
setkey(b,x)
a[b]
x y y.1
[1,] 1 1 3
[2,] 1 2 3
[3,] 1 1 4
[4,] 1 2 4
New argument
allow.cartesian
( defaultFALSE
) added toX[Y]
andmerge(X,Y)
, #2464. Prevents large allocations due to misspecified joins; e.g., duplicate key values inY
joining to the same group inX
over and over again. The word cartesian is used loosely for when more thanmax(nrow(X),nrow(Y))
rows would be returned. The error message is verbose and includes advice.
关于r - 合并 data.tables 使用超过 10 GB RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11610562/
#include typedef std::vector vc; typedef std::vector vvc; vvc f() { const int N = (1 不把它还给操作系统。 因
我正在尝试训练 Dlib's train_shape_predictor_ex.cpp与 Halen数据集。我在 Release模式 中使用 Visual Studio 将代码编译为 64 位平台 作
当我试图解决this 时想到了这个问题。问题。 我有一个容量为 120 GB 的硬盘,其中 100 GB 被一个巨大的文件占用。所以 20 GB 仍然是免费的。 我的问题是,我们如何将这个巨大的文件拆
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Can you allocate a very large single chunk of memory (
我有一台运行 Linux (3.19.5-200.fc21.x86_64) 的 128 GB RAM 的计算机。但是,我不能在单个进程中分配超过 ~30 GB 的 RAM。除此之外,malloc 失败
我需要为 808704000 个 float 分配内存,大约是 3085 MB。我的电脑有 32 GB 内存,运行 64 位 Linux (CentOS 6.6)。每次我尝试分配内存时,malloc
很抱歉这个愚蠢的问题,但是当reading about 32 bits limitation ,我发现由于 Memory-Mapped 方法,MongoDB 不能存储超过 2 GB,但是: 2^32
假设我们有一个 32 位地址,那么每一位可以是 1 或 0。 所以组合总数等于2^32。 所以我们可以表示 2^32 个地址(没有单位)。 但为什么人们说 32 位地址可以表示 2^32 字节地址(为
好吧,这个问题确实是一个挑战! 背景 我正在从事一个涉及比正常数字更大的基于算术的项目。我是新手,我打算使用 4 GB 文件大小的最坏情况(我什至希望将其扩展到 5GB 上限,因为我之前看到文件大小大
我在文件系统上有大约 12 个大小为 1 GB 到 10 GB 的存储库,我需要为所有这些存储库设置自动备份(我们的旧备份脚本在计算机出现故障时丢失了) XP 64 位机器。 看完this quest
我尝试调整 Linux VM 上的操作系统磁盘大小,该 VM 通常由 azure 自动创建。我无法创建自定义操作系统磁盘 - 请告知我该怎么做? enter image description her
我在 .NET 中遇到了一个问题,我的数组受到我拥有的 RAM 数量的限制,并且我需要可以容纳至少 40 GB 字节的数组。我正在考虑使用硬盘驱动器作为虚拟数组的想法不在乎它是否慢。 我正在研究这个想
我尝试调整 Linux VM 上的操作系统磁盘大小,该 VM 通常由 azure 自动创建。我无法创建自定义操作系统磁盘 - 请告知我该怎么做? enter image description her
我的目标是看看当使用比物理 GPU 内存所能容纳的更多纹理数据时会发生什么。我的第一次尝试是加载多达 40 个 DDS 纹理,导致内存占用比 GPU 内存高得多。但是,我的场景在 9500 GT 上仍
Windows 上的 JDK 最多需要 2 GB 左右的 RAM。即使我们为 JDK 分配更多 RAM;它不接受它。如果我需要在 Windows 上运行需要 8 GB RAM 的进程;我怎样才能实现它
我有一个程序需要分配2个15亿长度的整数数组。这是一个编码挑战( https://projecteuler.net/problem=282 ),并且没有办法使用如此大的数组(如果有,请不要告诉我;我应
假设我有一个 32 位内核。 4 Gb RAM,10 Gb 交换分区。 我有一个在无限循环中有 malloc 的进程。因此,最终系统的 OOM 将终止该进程。这里有两个论点。 参数 1:因为它是 32
我有一个可以大于 4GB 的文件。我正在使用 linux split 命令按行拆分它(这是要求)。但是拆分原始文件后,我希望拆分文件的大小始终小于 2GB。原始文件大小可能在 3-5 GB 之间。我想
我有一台带有 32GB RAM 的 Mac 服务器(雪豹)。当我尝试在 Perl (v 5.10.0) 中分配超过 1.1GB 的 RAM 时,出现内存不足错误。这是我使用的脚本: #!/usr/bi
我们正在尝试运行.NET 4 Web应用程序(在8 GB,8核心Windows 2008 R2 64位Webedition服务器上),该应用程序使用Spire.doc创建Word mailmerge文
我是一名优秀的程序员,十分优秀!