0

这是一个听起来很简单的问题,但我找不到解决问题的方法。我从以前的 data.frame 创建了一个表,以便以不同的方式组织我的数据(见下文)

下面的dataframe1部分

 Score   Pred
 0.966   Noise
 0.95    Noise
 0.964   Noise
 0.924   Call
 0.838   Noise
 0.982   Call
 0.934   Noise

使用以下方法将我的数据组织到一个表中:

dataframe1_sorted <- with(dataframe1, table(Score, Pred))

这将创建一个包含以下内容的表:我想计算每个分数类别中有多少“呼叫”和多少“噪音”。

Score    Pred Call Noise
0           0  402     0
0.002       0  207     0
0.004       0  120     0
0.006       0   83     0
0.008       0   59     0
0.01        0   48     0

现在,当我尝试使用df<-data.frame(dataframe1)保存此表时,它会更改列,并且我得到标题"Score, Pred, Freq"。我想将表完全保存到数据框中。

我能做些什么?

4

3 回答 3

2

尝试取消分类表:

df<-data.frame(unclass(dataframe1))

我想这就是你要找的。

于 2013-09-24T15:11:39.140 回答
1

我之前遇到过同样的问题并这样做了:

tab <- with(dat, table(Score, Pred))
class(tab) <- 'matrix'
data.frame(tab)    

编辑:使用'array'代替'matrix'也可以,并且应该扩展到更高维的表。

于 2013-09-24T15:12:26.533 回答
1

基础 R 之外的一种替代方法是dcastreshape2包中使用。它的输出是一个data.frame,所以你不必重新保存它。我喜欢这一点的一件事是,您可以获得每个列的名称。

require(reshape2)
(df = dcast(dataframe1, Score ~ Pred, fun.aggregate = length) )
于 2013-09-24T15:20:15.527 回答