我想创建变量" Time"这基本上表示变量ID在每天内出现的次数减去1.换句话说,计数滞后1并且第一次出现在一天中的ID应该留空。第二次在给定日期显示的相同ID应为1.
基本上,我想创建" Time"下例中的变量。
ID Day Time Value
1 1 0
1 1 1 0
1 1 2 0
1 2 0
1 2 1 0
1 2 2 0
1 2 3 1
2 1 0
2 1 1 0
2 1 2 0
以下是我正在处理的代码。没有成功。
data$time<-data.frame(data$ID,count=ave(data$ID==data$ID, data$Day, FUN=cumsum))
答案 0 :(得分:2)
我们可以使用router.post('/register',function(req,res,next){
执行此操作。将'data.frame'转换为'data.table'(router.post('/register', upload.single('profileimage'), function(req,res,next){
),按'ID','Day'分组,我们得到for(i=0;i<dim[0];i++)
for(j=0;j<dim[1];j++){
if(!image[i][j]) {
document.getElementById('top-left').innerHTML = i+' '+j;
return;
}
}
行的序列(data.table
)并将(setDT(df1)
)指定为“时间”栏。
lag
或shift(seq_len(.N))
:=
或没有library(data.table)
setDT(df1)[, Time := shift(seq_len(.N)), .(ID, Day)]
df1
# ID Day Value Time
# 1: 1 1 0 NA
# 2: 1 1 0 1
# 3: 1 1 0 2
# 4: 1 2 0 NA
# 5: 1 2 0 1
# 6: 1 2 0 2
# 7: 1 2 1 3
# 8: 2 1 0 NA
# 9: 2 1 0 1
#10: 2 1 0 2
base R
with(df1, ave(Day, Day, ID, FUN= function(x)
ifelse(seq_along(x)!=1, seq_along(x)-1, NA)))
#[1] NA 1 2 NA 1 2 3 NA 1 2