按组划分的观察数量
在 RI 中,有一个数据框,其中的观察结果由多个值描述,其中一个值是一个因子。我已经按这个因素对数据集进行了排序,并且想添加一列,在其中我可以在该因素的每个级别上获得一些观察结果,例如
factor obsnum
a 1
a 2
a 3
b 1
b 2
b 3
b 4
c 1
c 2
...
在 SAS 中,我可以这样做:
data logs.full;
set logs.full;
count + 1;
by cookie;
if first.cookie then count = 1;
run;
如何在 R 中实现这一点?
谢谢,
In R I have a data frame with observations described by several values one of which is a factor. I have sorted the dataset by this factor and would like to add a column in which I would get a number of observation on each level of the factor e.g.
factor obsnum
a 1
a 2
a 3
b 1
b 2
b 3
b 4
c 1
c 2
...
In SAS I do it with something like:
data logs.full;
set logs.full;
count + 1;
by cookie;
if first.cookie then count = 1;
run;
How can I achieve that in R?
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
rle
(行程编码)和sequence
:Use
rle
(run length encoding) andsequence
:这是 ddply() 解决方案
Here is the ddply() solution
一种使用基础 R 的解决方案,假设您的数据位于名为
dfr
的data.frame
中:可能有更好的解决方案(例如,使用包
plyr
和它的 ddply ),但它应该可以工作。One solution using base R, assuming your data is in a
data.frame
nameddfr
:There are likely better solutions (e.g. employing package
plyr
and itsddply
), but it should work.