У меня есть два списка списков A и B, A и B содержат по 100 кадров данных, а размер каждого кадра данных - 25000 X 25000. Я хотел бы найти корреляцию для весь кадр данных следующим образом: рассмотрите первый список в обоих списках и найдите cor (A, B) и получите одно значение, сопоставляющее весь блок данных. Аналогично рассмотрите второй список в обоих списках и найдите cor (A, B) и продолжите это для 100 фреймов данных.работает со списком данных в виде списка
Я попытался следующие:
A # list of 100 dataframes
$1 ### dataframe 1
$2
$3
....
$100 ### dataframe 100
B #list of 100 dataframes
$1 ### dataframe 1
$2
$3
....
$100 ### dataframe 100
C<- A[1] # extract only the first list from A
D<- B[1] # extract only the first list from B
C<-unlist(C) ### unlist C
D<-unlist(D) ## unlist D
Затем вычисляется
Correlation<- cor(C,D) ## to obtain a single correlation coefficient to see how these two vectors are correlated
Но я в конечном итоге с ошибкой Sayin
R cannot allocate a vector of size 3.9 GB
Есть ли лучший способ сделать это быстрее который может быть реализован во весь список. Я работаю на сервере, который позволяет мне вычислять большие значения, но он по-прежнему обнаруживает эту ошибку, и не-список занимает много времени из-за размера фрейма данных.
Это похоже на проблему с памятью больше всего на свете. Сколько у вас RAM? Каков результат 'object.size (A)'? Что такое вывод 'gc()'? – mrip