如何处理在R中使用by()函数返回的“by”类

时间:2012-01-26 20:48:03

标签: r statistics

我在R中使用by()函数在因子的所有子集上运行A FUN()。 FUN()返回两个数字作为返回值。 by()函数返回一个“by”类,如下所示:

--------------------------------------------------------------------------------------- 
: 98012
[1] 25.00  0.84
--------------------------------------------------------------------------------------- 
: 98301
[1] 5.0 0.6
--------------------------------------------------------------------------------------- 

我想将这个“by”类转换为普通的data.frame,这样我就可以分别使用两个返回的数字。但是,这样的“by”类不能转换为data.frame。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

你可以这样做:

df <- do.call(cbind.data.frame, yourByResult)

请注意,您需要指定cbind.data.frame,否则,使用简单的cbind,结果将是matrix而不是data.frame

答案 1 :(得分:2)

我会说不要使用by

而是使用plyr包中的ddply,语法为

ddply(data.frame,splitting-variable,f())

关键是你的函数需要获取data.frame并返回data.frame。