我在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。有什么想法吗?
答案 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。