as.matrix() will not help here. I will get the same error message. And also, I don't need correlation matrices. I simply need a vector of correlations. I will show you some code and data I am using.
Here you can see my main dataframe: > head(test) industry date testvar retf1 1 Industrials 2004-12-31 1174382477 -0.02240908 2 Industrials 2005-01-31 1101039133 0.08080221 3 Industrials 2005-02-28 1211723486 0.05646877 4 Industrials 2005-03-31 1253428861 -0.05743186 5 Industrials 2005-04-30 1152846793 -0.02928415 6 Industrials 2005-05-31 1070386589 0.05865941 Now I want to take column "industry" or "date" or both - whatever - as grouping columns for correlations between testvar and retf1 as follows: > numbers <- test[,c("testvar","retf1")] > head(numbers) testvar retf1 1 1174382477 -0.02240908 2 1101039133 0.08080221 3 1211723486 0.05646877 4 1253428861 -0.05743186 5 1152846793 -0.02928415 6 1070386589 0.05865941 > groups <- test[,"industry"] > head(groups) [1] "Industrials" "Industrials" "Industrials" "Industrials" "Industrials" [6] "Industrials" > head(unique(groups)) [1] "Industrials" "Telecommunications" "Financials" [4] "Utilities" "ConsumerGoods" "OilandGas" AND NOW: > aggregate(numbers,by=list(groups),FUN="cor") Fehler in FUN(X[[1L]], ...) : supply both 'x' and 'y' or a matrix-like 'x' So my desired output is a vector of correlations between subsets of x = "testvar" and y = "retf1". The length of the resulting vector will be length(unique(groups)). I think this draws a clearer picture to you. Sorry for not precisely pointing it out in my first post. Thanks and Regards! -----Ursprüngliche Nachricht----- Von: Uwe Ligges [mailto:lig...@statistik.tu-dortmund.de] Gesendet: Dienstag, 17. Januar 2012 19:21 An: Alexander Erbse Cc: r-help@r-project.org Betreff: Re: [R] Using Aggregate() with FUN arguments, which require more than one input variables On 17.01.2012 18:10, RNoob wrote: > Dear all, > > I am trying to apply the aggregate() function to calculate > correlations for subsets of a dataframe. My argument x is supposed to > consist of 2 numerical vectors, which represent x and y for the cor() > function. > > The following error results when calling the aggregate function: Error > in FUN(X[[1L]], ...) : supply both 'x' and 'y' or a matrix-like 'x'. I > think the subsets aggregate puts into cor() are sort of list types and > therefore can't be handled by cor(). as.matrix() will probably help, but since you have not specified your reproducible code, we cannot show how to change that. Uwe Ligges > Can anyone provide me with a solution? > > Regards, > RNoob > > -- > View this message in context: > http://r.789695.n4.nabble.com/Using-Aggregate-with-FUN-arguments-which > -require-more-than-one-input-variables-tp4303936p4303936.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.