現在、私の卒業論文(進化論的信頼ゲームのモデル)に取り組んでいます。私には次のような問題があります。私にはいくつかのタイプの投資家と信託者がいます。投資家と受託者はベクトルとして定義されます。私のコード(トラストゲーム)がしたいのは、(グローバルに定義された)投資家とトラスティーが必要だということです。彼らはトラストゲームの反復を一緒にプレイし、グローバルに定義された変数が関数トラストゲーム内で更新されます。私はそれが機能trustgameの引数として使用される任意の投資家\ trusteeのために働くことを望みます。私はこれをどのようにコード化できるか知っていますか?それがあなたを助けてくれるかどうかは確かではありませんが、コードも投稿しています。あなたの入力が文字列である場合グローバル変数への値の代入(および関数の引数も同様)R
#### defining trustees ####
# [1] honor\abuse
# [2] information about previous interaction - relevant to investors who buy the information
# [3] payoff
# [4] number of interactions
trustee1 <- c(1,0,0,0)
#### defining investors ####
# [1] buy\not buy
# [2-4] investment decision if buying information in case 1(TH), case 2(TA), case 3(NT)
# [5] aggregated payoff
# [6] number of interactions in one generation
investor1 <- c(1,1,1,1,0,0)
here is the code for the trust game
trustgame <- function(investor,trustee)
{ investordecision <- NULL
trusteedecision <- trustee[1]
investor[6] <- investor[6]+1
trustee[4] <- trustee[4]+1
if (investor[1]==0) investordecision <- investor[2]
if (investor[1]==1)
{ if (trustee[2]==1) investordecision <- investor[2]
if (trustee[2]==2) investordecision <- investor[3]
if (trustee[2]==3) investordecision <- investor[4]
if (trustee[2]==0) investordecision <- rbinom(1,1,0.5)
}
if (investordecision==1 && trustee[2]==1) trustee[2] <- 1
if (investordecision==1 && trustee[2]==0) trustee[2] <- 2
if (investordecision==0) trustee[2] <- 3
if (investordecision==1 && trusteedecision==1)
{trustee[3] <- trustee[3] +3
investor[5] <- investor[5] + 3 }
if (investordecision==1 && trusteedecision==0)
{trustee[3] <- trustee[3] +5
investor[5] <- investor[5] + 0 }
if (investordecision==0 && trusteedecision==0)
{trustee[3] <- trustee[3] +1
investor[5] <- investor[5] + 1 }
if (investordecision==0 && trusteedecision==1)
{trustee[3] <- trustee[3] +1
investor[5] <- investor[5] + 1 }
}
を '<< - '関数内でグローバル変数を変更します。注意してください。 – cory
私は知っていますが、私はいくつかのタイプの受託者(trustee1、trustee2、...)と投資家(investor1、investor2、...)を持っています。後で大規模なシミュレーションを行うことになるので、私は手動ですべてを入力する必要はありません。 – hed0r
'envir'引数で' get'と 'assign'を実行しますか? '<< - '、 '' get''と '' assigned''の使い方が大変で始めると、状況が間違っているという良い兆候です。 – cory