Сравнить два ffdf - PullRequest
       25

Сравнить два ffdf

0 голосов
/ 13 февраля 2019

У меня есть два очень больших набора данных (50M строк, 130 столбцов), которые я не могу сравнить с базовыми пакетами.Поэтому я должен использовать ffdf.Это первый раз, когда я работаю с пакетом ff.Я пытаюсь сравнить два ffdf, а затем записать различия в два выходных файла ("in_file1_not_in_file2", "in_file2_not_in_file1").Вот пример:

# For easy reproduction; normally a CSV file
set.seed(1234)
data1 <- data.frame(row.names=1:10, var1=sample(c(TRUE,FALSE), 10, replace=TRUE), var2=sample(1:8, 10, replace=TRUE), var3=as.factor(sample(c('AAA','BBB','CCC'), 10, replace=TRUE)))
data2 <- data.frame(row.names=1:10, var1=sample(c(TRUE,FALSE), 10, replace=TRUE), var2=sample(1:10, 10, replace=TRUE), var3=as.factor(sample(c('AAA','BBB','CCC'), 10, replace=TRUE)))

# Convert to an ffdf
ffdata1 <- as.ffdf(data1)
ffdata2 <- as.ffdf(data2)

Так что теперь я застрял.Обычно я объединял бы все строки в одном столбце и сравнивал бы это друг с другом.Примерно так:

# Normally - Combined columns
data1$CCID <- apply(data1, 1, paste, collapse='.')
data2$CCID <- apply(data2, 1, paste, collapse='.')

# Combine columns of ffdf?
ffdata1$CCID <- ??
ffdata2$CCID <- ??

# Normally - Comparison
cdata3 <- sapply(data2$CCID, FUN=function(x) { x == data1$CCID })
output1 <- data2[colSums(cdata3)>0,]
output2 <- data1[rowSums(cdata3)>0,]

# Comparison of ffdf?
ffcdata3 <- ??
ffoutput1 <- ??
ffoutput2 <- ??

Надеюсь, это понятно и извините, что я просто не знаю, как работать с ffdf.

...