2010-04-02 36 views
13

我正在使用()来根据我的数据框中的因子来计算函数,但我需要使用表格中的结果。在R中的数据框中输入“By”

我见过使用as.data.frame.table在数据框中获取“By”类对象,但我不确定这是否只适用于在()函数与“by”输出的长度相同。使用as.data.frame.table我收到以下错误

” ...的参数意味着不同的行号:33" 10,

是否有这样做的另一种方式? 可以使用tapply来代替()来获得不同的输出类吗?

顺便说一句,我使用的是由()到我的数据转换成频率表,然后通过标准箱

BT_by <- by(BT_H, BT_H$Tax_pp, function(BT_H) hist(rep.int(BT_H$Altitude, BT_H$Count), breaks = seq(0,6600,200), plot = FALSE)$counts) 

任何帮助,将不胜感激重组。

+1

我想你可能会更好使用'cut'和'xtabs'。 – hadley 2010-04-02 13:20:15

回答

18

by的输出基本上只是一个列表。如果要合并这些向量,则可以使用do.call(rbind, BT_by)(或cbind,具体取决于您实际需要的形状)。

+1

谢谢乔纳森,那正是我想要的。 – CCID 2010-04-02 12:12:39

+4

'do.call'不适用于我,但是'rbind'的直接应用做了:'rbind(BT_by)'。 – 2013-02-04 18:20:44