Я имею дело с большим набором данных трехмерных изображений, которые я загрузил в R, используя ff()
.
require(ff)
nSubj <- 125
vol_dim <- c(139,137,87)
ff_qmap <- ff(0, dim=c(vol_dim,nSubj)
Простые вызовы, такие как возврат среднего массива / "объема", работают нормально:
mean_qmap_vol <- ffapply(X=ff_qmap,MARGIN=c(1,2,3),AFUN=mean,RETURN=TRUE)
Однако в некоторых случаях я хотел бы вернуть более одного массива / «тома» обратно за один ffapply
вызов; например, при выполнении некоторой базовой регрессии, например против возраста:
pval_vol <- ffapply( AFUN=f <- function(x) {
df$voxel <- x
fe1 <- lm(formula = voxel ~ age, df)
summary_fe1 <- summary(fe1)
fe1_estimate <- summary_fe1$coefficients[2,1]
fe1_pval <- summary_fe1$coefficients[2,4]
return(fe1_pval)
}, X = ff_qmap, MARGIN = c(1,2,3), RETURN = TRUE)
Это работает для возврата одного тома назад, т.е. fe1_pval
.
Есть ли способ вернуть оба значения fe1_estimate
и fe1_pval
(и, возможно, больше оценок) в одном вызове ffapply?
> sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.2 LTS
...
other attached packages:
[1] ff_2.2-13 bit_1.1-12 lme4_1.1-17 Matrix_1.2-8 ggplot2_2.2.1 fslr_2.12 neurobase_1.13.2
[8] oro.nifti_0.9.1