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 $ internal [2]から開始します。これは、関数を1から開始し、前の値(存在しない)を検索しようとするとエラーが返されるためです。誰かがこれを回避する方法について考えているなら、私はそれを聞いてみたいです。乾杯。