gpt4 book ai didi

r - 合并较大数据的有效替代方法

转载 作者:行者123 更新时间:2023-12-03 10:12:24 25 4
gpt4 key购买 nike

我正在寻找一种有效的方法(明智地在计算机资源和学习/实现方面)来合并两个较大的数据帧(大小大于100万/ 300 KB RData文件)。

基数R中的“合并”和plyr中的“join”似乎耗尽了我所有的内存,实际上使系统崩溃了。


加载test data frame

并尝试

test.merged<-merge(test, test)

要么
test.merged<-join(test, test, type="all")  

--


以下帖子提供了合并和替代方法的列表:
How to join (merge) data frames (inner, outer, left, right)?

以下允许检查对象大小:
https://heuristically.wordpress.com/2010/01/04/r-memory-usage-statistics-variable/

anonym产生的数据

最佳答案

这是强制性的data.table示例:

library(data.table)

## Fix up your example data.frame so that the columns aren't all factors
## (not necessary, but shows that data.table can now use numeric columns as keys)
cols <- c(1:5, 7:10)
test[cols] <- lapply(cols, FUN=function(X) as.numeric(as.character(test[[X]])))
test[11] <- as.logical(test[[11]])

## Create two data.tables with which to demonstrate a data.table merge
dt <- data.table(test, key=names(test))
dt2 <- copy(dt)
## Add to each one a unique non-keyed column
dt$X <- seq_len(nrow(dt))
dt2$Y <- rev(seq_len(nrow(dt)))

## Merge them based on the keyed columns (in both cases, all but the last) to ...
## (1) create a new data.table
dt3 <- dt[dt2]
## (2) or (poss. minimizing memory usage), just add column Y from dt2 to dt
dt[dt2,Y:=Y]

关于r - 合并较大数据的有效替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11146967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com