2017-08-10 10 views
0

私はBehaviorSpaceを使用してNetlogoモデルで実験を行い、テーブル形式のファイルに出力します。私が記録するものの1つは、エージェントが選択したすべてのアクションを含むリストです。私は分析のためにRを使い、そのリストに基づいてヒストグラムを描きたいと思う。リストは、Netlogo形式のcsv - ファイル[0 1 2 3 4 5]の文字列です。これをRベクトルに変換する無痛な方法はありますか?NetlogoリストをRベクトルに変換

ps:私は[RNetlogo]ライブラリとそのデータをベクターに抽出する方法を知っています。しかし、それは本当に私にとってはうまくいかず、ファイル出力を進めたいと思います。

答えて

2

ここでは、基本的なrに必要なものを達成すると思う簡単な方法です。

enter image description here

興味の欄に各観測を取るためにlapplyを使用し、その後

df <- read.csv("example_bspace_output.csv", skip = 6, stringsAsFactors = FALSE) 

と、たとえば、あなたが好きしかし、中にそのファイルを読み、:あなたのテーブル出力のようなものに見えると仮定すると、 gsubを使用して角括弧を削除し、unlist,as.numeric、およびstrsplitを数値に組み合わせます(一部の文字列が出力されている場合はas.numericを使用しないでください)。

vals_list <- lapply(df$xcor_list, function(x){ 
    y <- gsub("\\[|\\]", "", x) 
    unlist(as.numeric(unlist(strsplit(y, " "))), recursive = TRUE) 

}) 

> vals_list 
[[1]] 
[1] 0 0 0 

[[2]] 
[1] 0.9205049 -0.8386706 0.9876883 

[[3]] 
[1] 1.841010 -1.677341 1.975377 

[[4]] 
[1] 2.963065 -2.516012 2.761515 

[[5]] 
[1] 3.682019 -3.354682 3.950753 

[[6]] 
[1] -4.193353 4.938442 4.602524 

うまくいけば、それは私が何を修正する必要がある場合は私に知らせて、うまくいきます。

関連する問題