Я пытаюсь найти все уникальные группы вектора/списка элементов длиной 39. Ниже приведен код, который у меня есть:
x <- c("Dominion","progress","scarolina","tampa","tva","TminKTYS",
"TmaxKTYS","TminKBNA","TmaxKBNA","TminKMEM","TmaxKMEM",
"TminKCRW","TmaxKCRW","TminKROA","TmaxKROA","TminKCLT",
"TmaxKCLT","TminKCHS","TmaxKCHS","TminKATL","TmaxKATL",
"TminKCMH","TmaxKCMH","TminKJAX","TmaxKJAX","TminKLTH",
"TmaxKLTH","TminKMCO","TmaxKMCO","TminKMIA","TmaxKMIA",
"TminKPTA","TmaxKTPA","TminKPNS","TmaxKPNS","TminKLEX",
"TmaxKLEX","TminKSDF","TmaxKSDF")
# Generate a list with the combinations
zz <- sapply(seq_along(x), function(y) combn(x,y))
# Filter out all the duplicates
sapply(zz, function(z) t(unique(t(z))))
Однако код приводит к тому, что моему компьютеру не хватает памяти. Есть лучший способ сделать это? Я понимаю, что у меня большой список. благодаря.
sum(choose(39,1:39))
= 549755813887. Подумайте на секунду о том, насколько велико это число, а теперь подумайте, действительно ли вы хотите это сделать. - person joran   schedule 05.08.2011mmap
. Или Хадуп. :) - person Iterator   schedule 05.08.2011sum(choose())
, а некоторые просто вычисляют2^39 - 1
. :) - person Iterator   schedule 05.08.2011