将tapply输出转换为R中的数据帧
我有一个tapply电话的输出将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
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()。我明白为什么这个问题被否决了,但你可以编辑它来澄清情况。