可能重复:
具有多个输出的函数,
对数据框中组内的行进行编号
G'day,我有一个按地点分组的个人列表。我想生成一个新变量,根据他们的位置为每个人提供一个数字。我希望我的数据看起来像:
place individual
here 1
here 2
here 3
there 1
there 2
somewhere 1
somewhere 2
我写了这个:
nest<-data.frame(location=c("one","one","two", "three", "three", "three"))
individual<- function(x)
{
pp = 1
jj = 1
for (i in 2:length(x)){
if (x[i] == x[pp]){
res<- jj+1
pp = pp + 1
jj = jj + 1
}
else{
res<- 1
pp = pp + 1
jj = 1
}
}
return(res)
}
test<- individual(nest$location)
test
我很确定这可以满足我的要求,但是,我不知道如何返回多个结果值。如何更改此函数以返回每个位置值的结果?或者,有没有更简单的方法可以使用预先存在的 R 包来做到这一点?
PS 在旁注中,我从 nest$individual[2] 启动函数,因为当它从 1 启动函数并尝试查找先前的值(不存在)时,它会返回错误。如果有人对如何解决这个问题有想法,我很想听听。干杯。