[R] Help needed on applying a function across different data sets and aggregating the results into a single data set
Girish A.R.
garamach at gmail.com
Sat Jan 2 07:15:22 CET 2010
Thanks for the replies, Jim, David, and Dennis (who replied to me directly)!
To summarize, here's what worked for me:
===========
dflist <- list(df1, df2, df3)
lsfun <- function(df) with(df, lsfit(A, B)$coef)
res <- lapply(dflist, lsfun)
do.call(rbind, res)
===========
cheers,
-Girish
Girish A.R. wrote:
>
> Hi folks,
>
> Wish y'all a Happy New Year 2010!
>
> I need some help with the following:
>
> Say I have lots of data sets, on which I have to apply a certain function
> on the same set of columns in each of the data set. Let's take, for ex,
> the typical data set is:
>
> df1 <- as.data.frame(cbind(rnorm(10),rnorm(10)))
> names(df1)[1] <- "A"
> names(df1)[2] <- "B"
>
> There are many such data sets, df2,df3,... I have the names stored in a
> list
> DF <- cbind("df1","df2",...,"df100")
>
> I now need to apply the following function:
> a <- lsfit(df1$A,df1$B)
>
> and stack up the following results:
> a$coef
> Intercept X
> -0.1479750 0.2485416
>
> So, I would end up with as many rows as there are data sets.
>
> I think sapply would be the function I should be looking for (at least I
> have used it in the case of applying a function across different columns
> of the same data set), but for some reason I'm not able to nail down the
> final stages in this case.
>
> Earlier, I used something like the following in the case of applying a
> function across all columns(except the first) of the same data set:
> my.func <- function(x){
> mod <- lrm(my.data$y ~ x)
> data.frame(t(anova(mod)[1, ]), R2 = mod$stats[10])
>
> sapply(my.data[,-1],my.func)
>
> Where I need help is how to pass the reference of the names of the
> different data sets to the sapply funtion.
>
> Thanks!
> -Girish
>
> ====================================
> sessionInfo()
> R version 2.10.0 (2009-10-26)
> i386-pc-mingw32
>
> locale:
> [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United
> States.1252
> [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] grid stats graphics grDevices utils datasets methods
> base
>
> other attached packages:
> [1] lattice_0.17-26 RWinEdt_1.8-2 ggplot2_0.8.5 digest_0.4.2
> reshape_0.8.3
> [6] plyr_0.1.9 proto_0.3-8
>
> loaded via a namespace (and not attached):
> [1] Formula_0.2-0 kinship_1.1.0-23 MASS_7.3-4 nlme_3.1-96
> plm_1.2-1
> [6] sandwich_2.2-4 splines_2.10.0 survival_2.35-8 tools_2.10.0
>
>
--
View this message in context: http://n4.nabble.com/Help-needed-on-applying-a-function-across-different-data-sets-and-aggregating-the-results-into-a-sint-tp997046p997094.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list