R:创建表并将其保存到数据框

时间:2013-09-24 15:02:33

标签: r dataframe

这是一个如此简单的声音问题,但我无法找到解决问题的方法。我已经从之前的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&lt; -data.frame(dataframe1)保存此表时,它会更改列,我会得到标题“Score,Pred,Freq”< / em>的。我想将表完全保存到数据帧。

我该怎么办?

3 个答案:

答案 0 :(得分:2)

尝试取消分类表:

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

我认为这就是你要找的东西。

答案 1 :(得分:1)

我之前遇到过同样的问题:

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

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

答案 2 :(得分:1)

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

require(reshape2)
(df = dcast(dataframe1, Score ~ Pred, fun.aggregate = length) )