我有以下变量:
datevote
1 1981-6-21
2 1981-6-21
3 1981-9-23
4 1982-2-14
5 1982-2-14
等等..。
最后,我希望有一个新列,其中显示"datevote“ist相同日期的编号:
datevote numbervotes
1 1981-6-21 2
2 1981-6-21 2
3 1981-9-23 1
4 1982-2-14 2
5 1982-2-14 2
我试过几件事,但工作似乎比预期的要多。有谁可以帮我?非常感谢你的帮助,谢谢。
发布于 2014-01-30 10:10:57
您可以像这样使用新的dplyr
包。
library(dplyr)
df <- data.frame(datevote = as.Date(c("1981-06-21", "1981-06-21", "1981-06-23", "1981-06-14", "1981-06-14")))
mutate(group_by(df, datevote), numbervotes = n(datevote))
## datevote numbervotes
## 1 1981-06-21 2
## 2 1981-06-21 2
## 3 1981-06-23 1
## 4 1981-06-14 2
## 5 1981-06-14 2
等效的plyr
解决方案是:
detach(package:dplyr)
library(plyr)
ddply(df, "datevote", mutate, numbervotes = length(datevote))
发布于 2014-01-30 11:48:05
Data.table备选方案:
df <- data.frame(datevote = as.Date(c("1981-06-21", "1981-06-21", "1981-06-23", "1981-06-14", "1981-06-14")))
library(data.table)
df <- data.table(df)
df[,numbervotes:=.N, by=datevote]
df
https://stackoverflow.com/questions/21453268
复制相似问题