如何将摘要输出转换为数据框?

时间:2013-06-21 20:59:04

标签: r dataframe

我总结了一个由ID组成的数据框列(称为DATA),因此我得到了给定列中每个ID的总数。我想将它转换为另一个数据帧(称为TOTALNUM),所以我有两列。第一列是ID本身,第二列是每个ID的总数。这可能吗?

示例数据:

ids <- c(1,2,3,4,5,1,2,3,1,5,1,4,2,2,2)
info <- c("A","B","C","A","B","C","A","B","C","A","B","C","A","B","C")
DATA <- data.frame(ids, info)
DATA$ids <- as.factor(DATA$ids)

我想在数据框中添加什么: 顶行将是新数据框中的第一列。 第二行将是新数据框中的第二列。

summary(DATA$ids)

这就是我希望数据框看起来像:

ids    nums
1      4
2      5
3      2
4      2
5      2

谢谢!

1 个答案:

答案 0 :(得分:8)

通过您的方法,您可以利用summary返回计数向量的事实,每个值都为ids的名称:

> my.summary <- summary(DATA$ids)
> data.frame(ids=names(my.summary), nums=my.summary)
  ids nums
1   1    4
2   2    5
3   3    2
4   4    2
5   5    2

或者 - 这种方法更直接 - 您可以基于ids创建频率表,然后将其转换为数据框:

> as.data.frame(table(ids), responseName="nums")
  ids nums
1   1    4
2   2    5
3   3    2
4   4    2
5   5    2