Рассчитать столбец условных средних, в ff/ffbase
пакетах. Я ищу функциональность в пакетах ff/ffbase
, которые позволяют мне манипулировать данными, как показано ниже с пакетом data.table
:
library(data.table)
irisdf <- as.data.table(iris)
class(irisdf)
#"ffdf"
irisdf[, NewMean:= mean(Sepal.Length), Species]
В ffbase
есть функция для условного среднего, но она создает вектор длины числа классов в irisdf[,5]
:
condMean(x = irisdf[,1], index = irisdf[,5], na.rm = FALSE)
, а не новый вектор длины nrow(irisdf)
.
Как предложил @BondedDust, ave(base)
дает правильный вывод:
VectorOfMeans <- ave(irisdf[,1], irisdf[,5], FUN=mean)
Итак, последний вопрос: как добавить VectorOfMeans
к irisdf
, я пробовал ниже код, который работает:
irisdf=as.ffdf(iris)
VectorOfMeans <- as.ffdf(as.ff(ave(irisdf[,1], irisdf[,5], FUN=mean)))
irisdf <- cbind.ffdf2(df,VectorOfMeans )
с cbind.ffdf2 из SO ответа, но Я полагаю, что вопрос SO был о чем-то более конкретном, чем основной, и я полагаю, что есть более простой (быстрый) способ сделать это. Я хотел бы иметь возможность запускать bigglm.ff
на полученном наборе данных (в примере irisdf
), вы должны посмотреть на мой вопрос об объединении VectorOfMeans
и irisdf
в этом контексте (поскольку есть проблемы с физическими/виртуальными режимами хранения, которые я не понимаю в Детали).
?'[<-.ffdf'
на странице справки по функциям присваивания для таких объектов. - person IRTFM   schedule 08.02.2015condMean
для условного среднего, но длина вывода - это количество классов, а не количество строк в наборе данных, а метки классов не рассматриваются как переменные. - person Qbik   schedule 08.02.2015ave
. Вы не опубликовали минимальный тестовый пример даже для самых простых тестов. - person IRTFM   schedule 08.02.2015ave
- person Qbik   schedule 08.02.2015ffdfdply
отlibrary(ffbase)
- person akrun   schedule 08.02.2015ffdfdply
?ave
кажется, ломается на больших наборах данных (>40 м наблюдений), я только что проверил это. - person Qbik   schedule 08.02.2015ave
, но принимаетfactor
в качестве группирующей переменной? - person Qbik   schedule 09.02.2015ave
должен принимать факторный индекс/вектор группировки. - person IRTFM   schedule 09.02.2015ffdf
и - person Qbik   schedule 09.02.2015