Я работаю с очень большим набором данных, и я хотел бы сохранить данные в H2O как можно больше, не доводя его в R.Передача H2O Frames по ссылке
я заметил, когда я передать H2O Frame
к функции , любая модификация, которую я делаю в рамке, не отражается вне функции. Есть ли способ передать кадр по ссылке?
Если нет, то каким образом можно изменить исходный кадр внутри функции с копированием всего кадра?
Другой связанный с этим вопрос: передает ли кадр другим функциям (только для чтения), сделайте дополнительные копии на стороне H2O? Мои наборы данных - 30 ГБ - 100 ГБ. Поэтому, чтобы убедиться, что их передача не вызывает проблем с памятью.
mod = function(fdx) {
fdx[,"x"] = -1
}
d = data.frame(x = rnorm(100),y=rnorm(100))
dx = as.h2o(d)
dx[1,]
mod(dx)
dx[1,] # does not change the original value of x
> dx[1,]
x y
1 0.3114706 0.9523058
> dx[1,]
x y
1 0.3114706 0.9523058
Спасибо!
'data.table' имеет аналогичный механизм для использования' reference', но я не уверен, что он может использоваться в вашем случае. вы можете посмотреть [здесь] (http://stackoverflow.com/questions/10225098/understanding-exactly-when-a-data-table-is-a-reference-to-vs-a-copy-of-another). – Patric