将tapply输出转换为R中的数据帧

将tapply输出转换为R中的数据帧,r,R,我有一个tapply电话的输出 1 2 4 678.2 19.3 716.2 key value 1 1 678.2 2 2 19.3 3 4 716.2 我想把它做成一个数据框 1 2 4 678.2 19.3 716.2 key value 1 1 678.2 2 2 19.3 3 4

我有一个tapply电话的输出

1        2       4
678.2    19.3    716.2
     key    value
1    1      678.2
2    2      19.3
3    4      716.2
我想把它做成一个数据框

1        2       4
678.2    19.3    716.2
     key    value
1    1      678.2
2    2      19.3
3    4      716.2

我怎样才能做到这一点呢?

一些示例代码很好,可以准确地看到您正在做什么。狭义地回答你的问题,如果
x
是你的
taply
的结果,那么

data.frame(key=names(x), value=x)

更广泛地说,请参见和聚合,并将plyr打包以了解更一般的数据争用需求。

如果将替换为聚合,它将自动显示为data.frame

aggregate( value ~ key, FUN = mean )
其中value和key对应于
t调用

tapply( value, key, mean )

这是不正确的。这使得键4的索引为4,而不是3@CodeGuy:我不知道你的意思,但我假设你做了.numeric(key)
并且看到4映射到3。如果您不希望
key
成为一个因素,请执行
key=as.numeric(names(x))
.hm。没有,我没有那样做。我的意思是,从我上面的问题,你可以看到索引3有一个键4和一个值716.2。此外,我有一系列的级别。我怎样才能摆脱那些把整个游戏搞得一团糟的关卡呢plotting@CodeGuy当我运行Hong Ooi的代码时,我得到的输出正是您所希望的格式。如果您没有,那么可能还有其他一些事情您没有告诉我们。请从该对象提供dput()。我明白为什么这个问题被否决了,但你可以编辑它来澄清情况。