我总结了一个由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
谢谢!
答案 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