在RI中有一个数据帧,其中观察由几个值描述,其中一个值是一个因子.我已经按照这个因素对数据集进行了排序,并希望添加一个列,在该列中,我将在每个级别的因子上获得一些观察结果,例如
factor obsnum
a 1
a 2
a 3
b 1
b 2
b 3
b 4
c 1
c 2
...
Run Code Online (Sandbox Code Playgroud)
在SAS中,我使用以下内容:
data logs.full;
set logs.full;
count + 1;
by cookie;
if first.cookie then count = 1;
run;
Run Code Online (Sandbox Code Playgroud)
我怎样才能在R中实现这一目标?
谢谢,
And*_*rie 13
使用rle(运行长度编码)和sequence:
x <- c("a", "a", "a", "b", "b", "b", "b", "c", "c")
data.frame(
x=x,
obsnum = sequence(rle(x)$lengths)
)
x obsnum
1 a 1
2 a 2
3 a 3
4 b 1
5 b 2
6 b 3
7 b 4
8 c 1
9 c 2
Run Code Online (Sandbox Code Playgroud)
这是ddply()解决方案
dataset <- data.frame(x = c("a", "a", "a", "b", "b", "b", "b", "c", "c"))
library(plyr)
ddply(dataset, .(x), function(z){
data.frame(obsnum = seq_along(z$x))
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7147 次 |
| 最近记录: |