9

我总结了由 ID 组成的数据框的一列(称为此数据),因此我得到了给定列中每个 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

谢谢!!

4

1 回答 1

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
于 2013-06-21T21:03:08.893 回答